Thema Datum  Von Nutzer Rating
Antwort
Rot Array mit If-Anweisung
29.10.2014 09:14:37 Moritz
Solved

Ansicht des Beitrags:
Von:
Moritz
Datum:
29.10.2014 09:14:37
Views:
1233
Rating: Antwort:
 Nein
Thema:
Array mit If-Anweisung

Hallo alle zusammen,

ich beschäftige mich seit ein paar Tagen mit VBA. Ich habe momentan eine Arbeitsmappe die ich dafür gebrauche um eine Liste auszulesen und bestimmte daten dann immer wieder neu erstellten Worksheets zuzuweisen.

als erstes habe ich es ganz statisch nur mit einem worksheet versucht und es hat auch alles geklappt. Nun habe ich das Problem, dass ich über einen Butten ein die neuen Worksheets erstelle und können immer wieder neue kommen und gelöscht werden.

Vor jeder Abfrage der auszulesenden Tabelle wird mir ein globales Array mit den Namen angelegt und nun will ich eine Spalte mit Inhalten mit dem Array vergleichen. Der Code schaut derzeit folgendermaßen aus:

 

Sub test()
 Dim Name As Variant
 Dim x As Integer
 Dim z As String
 Dim w As Integer
 
 While x < 20
    x = x + 1

'Spalte die verglichen werden soll
    Name = Cells(3, 4).Offset(x, 0)

 


    Set PA = Worksheets("Datenaufbereitung").Cells(3, 4).Offset(x, -3)
    Set Kunde = Worksheets("Datenaufbereitung").Cells(3, 4).Offset(x, -2)
    Set Menge = Worksheets("Datenaufbereitung").Cells(3, 4).Offset(x, -1)
    Set Start = Worksheets("Datenaufbereitung").Cells(3, 4).Offset(x, 1)
    Set Planung = Worksheets("Datenaufbereitung").Cells(3, 4).Offset(x, 2)
   

If Name = "Fr. XYZ" Then
 
        With ActiveWorkbook.Sheets(Name)
            .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 2) = PA
            .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 3) = Kunde
            .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 4) = Menge
            .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 5) = Start
            .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 6) = Planung
        End With
        End If

'statisches Beispiel das geht


    For w = 1 To 100

'Array Personal wurde global definiert und mit einem anderen Makro gefüllt



       If Name = Personal(w) Then
           With ActiveWorkbook.Worksheets(Personal(w))
               .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 2) = PA
               .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 3) = Kunde
               .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 4) = Menge
               .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 5) = Start
               .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 6) = Planung
           End With
       End If
    Next

'Hier soll das Array durchgegangen werden und die Inhalte aus der Tabelle in die Worksheets die übereinstimmen Übertragen werden

 Wend
 
End Sub

 

Es kann sein, dass der Code etwas umständlich ist, aber wie gesagt ich bin ein blutiger Anfänger. Ich freue mich über Vorschläge.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Array mit If-Anweisung
29.10.2014 09:14:37 Moritz
Solved