Announcement

Collapse
No announcement yet.

To Read, Compare, Copy and paste it

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • To Read, Compare, Copy and paste it

    Dear all,
    I am happy to join for the first time this forum. Now here is a short explanation about my problem then I will ask.
    I have Excel data with which there every column have a NAME.
    I did a User form in this user form you can find alot of the parameters! i.e. the NAME and normally I dont need all the parameters,but only some!, so what I did is to call the user form and to click for every NAME or parameters that I need and the idea is :
    to read what checked in the user form and then go to my Excel data , compare if it is the same then copy this column (from 3 to 93 cells) and then go to another sheet which is already created automatically! and then paste it there.

    So people I tried to see in which method that I can do, but I couldnt do anything but this code :
    Sub Auswerte_Programm()

    Dim Zeilenzahl, Koeffizientenzahl, Gesamtgröße, GemischteKoeffizienten, m, n As Integer
    Dim Steuerungswerte() As Integer
    Dim Ansaetze(10), Satinageeinstellungen(20), untersuchte_Parameter(20) As Variant


    ' To read values from the User form
    Ansaetze(1) = Eingabefenster.linear.Value
    Ansaetze(2) = Eingabefenster.quadratisch.Value
    Ansaetze(3) = Eingabefenster.kubisch.Value
    Ansaetze(4) = Eingabefenster.exponentiell.Value
    Ansaetze(5) = Eingabefenster.gemischt.Value

    Satinageeinstellungen(1) = Eingabefenster.Temperatur.Value
    Satinageeinstellungen(2) = Eingabefenster.Spannung.Value
    Satinageeinstellungen(3) = Eingabefenster.Nipbreite.Value
    Satinageeinstellungen(4) = Eingabefenster.Dichtevor.Value
    Satinageeinstellungen(5) = Eingabefenster.Dickevor.Value
    Satinageeinstellungen(6) = Eingabefenster.WWradius.Value
    Satinageeinstellungen(7) = Eingabefenster.HWradius.Value
    Satinageeinstellungen(8) = Eingabefenster.WWhärte.Value
    Satinageeinstellungen(9 ) = Eingabefenster.Rauigkeit_der_Walzenoberfläche.Valu e
    Satinageeinstellungen(10) = Eingabefenster.Rauigkeit_von_Papier.Value
    Satinageeinstellungen(11) = Eingabefenster.Nullwerte.Value

    untersuchte_Parameter(1) = Eingabefenster.Dichte.Value
    untersuchte_Parameter(2) = Eingabefenster.Dicke.Value
    untersuchte_Parameter(3) = Eingabefenster.Glanz.Value
    untersuchte_Parameter(4) = Eingabefenster.Glätte.Value
    untersuchte_Parameter(5) = Eingabefenster.Mottling.Value
    untersuchte_Parameter(6) = Eingabefenster.Opazität.Value
    untersuchte_Parameter(7) = Eingabefenster.Schwarzsatinage.Value
    untersuchte_Parameter(8) = Eingabefenster.a_wert.Value
    untersuchte_Parameter(9 ) = Eingabefenster.b_wert.Value
    untersuchte_Parameter(10) = Eingabefenster.k_wert.Value
    untersuchte_Parameter(11) = Eingabefenster.Y_wert.Value
    untersuchte_Parameter(12) = Eingabefenster.S_wert.Value
    untersuchte_Parameter(13) = Eingabefenster.L_wert.Value

    ' to count the selected
    a = 0 'ansatz
    s = 0 'satinageeinstellung
    P = 0 'parameter
    For i = 0 To 9
    If Ansaetze(i) = True Then a = a + 1
    If Satinageeinstellungen(i) = True Then s = s + 1
    If Satinageeinstellungen(10 + i) = True Then s = s + 1
    If untersuchte_Parameter(i) = True Then P = P + 1
    If untersuchte_Parameter(10 + i) = True Then P = P + 1
    Next i
    ' to calculate everything but not the mixed
    Koeffizientenzahl = s * (-CInt(Ansaetze(1)) - CInt(Ansaetze(2)) - CInt(Ansaetze(3)) - CInt(Ansaetze(4)))
    GemischteKoeffizienten = 0
    For i = 1 To (Koeffizientenzahl - 1)
    GemischteKoeffizienten = GemischteKoeffizienten + i
    Next i

    AnzahlDatensätze = Sheets.Count
    ReDim Steuerungswerte(0, AnzahlDatensätze)


    For j = 1 To AnzahlDatensätze * 2 Step 2
    Sheets(j).Select
    Name = Sheets(j).Name
    Range("A3").Select
    Zeilenzahl = Range(Selection, Selection.End(xlDown)).Count
    Set NewSheet = Sheets.Add(Type:=xlWorksheet)
    NewSheet.Name = "X-" & ((j + 1) / 2) & "-" & Name
    NewSheet.Move after:=Sheets(j + 1)
    Steuerungswerte(0, ((j + 1) / 2)) = Zeilenzahl
    Sheets(((j + 1) / 2)).Select
    ReDim MasterXMatrix(AnzahlDatensätze, (Koeffizientenzahl + GemischteKoeffizienten), Steuerungswerte(0, ((j + 1) / 2)))
    ReDim MasterYVektor(AnzahlDatensätze, P, Steuerungswerte(0, ((j + 1) / 2)))

    For i = 1 To Steuerungswerte(0, ((j + 1) / 2)) 'bis 90
    For k = 1 To P
    If k = 1 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 32).Value 'Dichte
    If k = 2 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'Dicke
    If k = 3 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 48).Value 'Glanz Tappi 75° vl
    If k = 4 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 44).Value 'Glanz DIN 75° vl
    If k = 5 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 40).Value 'Glanz DIN 45° vl
    If k = 6 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 48).Value 'Glanz Tappi 75° vr
    If k = 7 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 44).Value 'Glanz DIN 75° vr
    If k = 8 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 40).Value 'Glanz DIN 45° vr
    If k = 9 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 52).Value 'Glätte Oberseite
    If k = 10 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 54).Value 'Glätte Siebseite
    If k = 11 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 36).Value 'Mottling
    If k = 12 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 38).Value 'Schwarzsatinage
    'If k = 13 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'Opazität
    'If k = 14 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'a-Wert
    'If k = 15 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'b-Wert
    'If k = 16 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'k-Wert
    'If k = 17 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'Y-Wert
    'If k = 18 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'S-Wert
    'If k = 19 Then MasterYVektor(((j + 1) / 2), k, i) = ActiveCell.Offset(i - 1, 29 ).Value 'L-Wert
    Next k

    For k = 1 To Koeffizientenzahl
    If untersuchte_Parameter(i) = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 0).Value 'Temp HW
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 1).Value 'Temp WW
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 5).Value 'Spannung
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 6).Value 'Nipbreite
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 7).Value 'E-Modul WW
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 31).Value 'Dichte vor
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 23).Value 'Dicke vor
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 9 ).Value 'Radius WW
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 8).Value 'Radius HW
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 10).Value 'Härte WW
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 11).Value 'Rauhigkeit Kontaktwalze
    If k = 1 Then MasterXMatrix(((j + 1) / 2), k, i) = ActiveCell.Offset(i, 52).Value 'Rauhigkeit Papier
    Next k

    For k = 1 To GemischteKoeffizienten
    'MasterXMatrix(((j + 1) / 2), Koeffizientenzahl+k, i) = MasterXMatrix(((j + 1) / 2), k, i)
    Next k



    Next i
    Next j

    Sub




    And as I think I should compare from the user form due to EVENT code but HOW??? or any way it will be good.
    Sorry that is too long but I wanted to clear it for you!
    Thanks in advance
    mcf22
Working...
X