Anzeige
Archiv - Navigation
1284to1288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten mit Schleife abarbeiten

Daten mit Schleife abarbeiten
01.11.2012 10:52:08
Nik
Hallo zusammen,
lang lang ist es her mit VBA, von daher stehe ich grad ein wenig auf der Leitung.
Ich habe ein Dropdownfeld, in dem ich Namen auswählen kann. Der Wert des Dropdowns steht in der Zelle O1.
Je nach Auswahl im Dropdown stehen in der Range A1:C1 diverse Werte, die ich nun ebenfalls nach A1:C1 auf ein anderes Sheet kopieren müsste. Dies muss er solange wiederholen bis alle Einträge im Dropdown abgearbeitet sind.
Das kopieren hab ich soweit gelöst:
Worksheets("Rechnung").Select
Range("P2:Y2").Copy
Worksheets("Zusammenfassung").Select
Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Allerdings müsste ich jetzt nun noch den Wert in O1 mit einer Schleife so abändern, dass alle Einträge im Dropdown abgearbeitet sind. Kann mir jemand da auf die Sprünge helfen?
Vielen lieben Dank und Gruss
Nik

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
verstehe nicht alles
01.11.2012 11:22:55
Tino
Hallo,
das kopieren könntest Du ohne Select erledigen.
With Worksheets("Zusammenfassung")
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(, 10).Value = _
Worksheets("Rechnung").Range("P2:Y2").Value
End With
Das andere wovon Du schreibst, verstehe ich nicht!
Da wäre vielleicht eine Beispieldatei gut, wo man erkennen kann was geschehen soll.
Gruß Tino

AW: verstehe nicht alles
01.11.2012 11:43:31
Nik
Hallo Tino,
vielen Dank für das Feedback, allerdings sind die Files eine ziemliche Baustelle, so dass es eher schwierig ist mit der Bsp.-Datei. Vergiss aber am besten mal den Code weiter oben.
Folgendes: Ich habe ein Dropdownfeld in dem Namen stehen und so ausgewählt werden können. Je nach Auswahl ändert sich die Zelle O1 (bei Name 2 steht dort dann eben eine 2) Die Zellen A1:C1 sind jeweils verformelt, so dass diese Werte sich je nach Auswahl Namen ändern. Nun sollte ich eben eine Schleife haben, die alle Namen im Dropdown abarbeitet. Entweder dass das Makro in O1 nacheinander die Werte 1 bis 50 reinschreibt und abarbeitet (also der oben aufgeführte Copy-Befehl). Ganz klasse wäre natürlich dass das Makro selbständig erkennt wieviel Einträge im Dropdown stehen, also nicht nur fix 50 Einträge abarbeitet. Ist das nun verständlich? Sorry, ist manchmal gar nicht so einfach zu erklären..
Danke und Gruss
Nik

Anzeige
AW: verstehe nicht alles
01.11.2012 12:01:57
Tino
Hallo,
hier mal ein Versuch.
Ich denke mal das dieses Dropdownfeld aus einem Rangebereich (Liste) gefüllt wird.
Sub Makro1()
Dim n&, nn&, MerkWert
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    
    With Worksheets("Rechnung")
        'Name des Dropdown evtl. anpassen 
        nn = Range(.Shapes("Dropdown 1").DrawingObject.ListFillRange).Rows.Count
        MerkWert = .Range("O1").Value
    End With
    With Worksheets("Zusammenfassung")
        For n = 1 To nn
            Worksheets("Rechnung").Range("O1") = n
            'kann evtl. gelöscht werden wenn Berechnung auf Auto... steht 
            Worksheets("Rechnung").Calculate
            
            .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(, 10).Value = _
                Worksheets("Rechnung").Range("P2:Y2").Value
        Next n
    End With
    
    Worksheets("Rechnung").Range("O1").Value = MerkWert
    
    .EnableEvents = True
    .ScreenUpdating = True
End With
End Sub
Gruß Tino

Anzeige
AW: Daten mit Schleife abarbeiten
01.11.2012 12:20:24
Nik
Super, vielen lieben Dank! Hab es eben mal ausprobiert... Aber ne ganz dumme Frage: wie finde ich raus was für einen Namen Excel für das Listenfeld/ Dropdown vergeben hat?
Danke und Gruss
Nik

AW: Daten mit Schleife abarbeiten
01.11.2012 12:22:32
Nik
Habe es eben rausgefunden...DANKE! Allerdings wird jeder Datensatz nun doppelt in die Zusammenfassung geschrieben...:-(
Dim n&, nn&, MerkWert
With Application
.ScreenUpdating = False
.EnableEvents = False
Worksheets("Zusammenfassung").Select
Range("A2:K1000").Delete
Worksheets("Rechnung").Select
With Worksheets("Rechnung")
'Name des Dropdown evtl. anpassen
nn = Range(.Shapes("Listenfeld 3").DrawingObject.ListFillRange).Rows.Count
MerkWert = .Range("O1").Value
End With
With Worksheets("Zusammenfassung")
For n = 1 To nn
Worksheets("Rechnung").Range("O1") = n
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(, 10).Value = _
Worksheets("Rechnung").Range("P2:Y2").Value
Worksheets("Rechnung").Select
Range("P2:Y2").Copy
Worksheets("Zusammenfassung").Select
Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next n
End With
Worksheets("Rechnung").Range("O1").Value = MerkWert
.EnableEvents = True
.ScreenUpdating = True
End With
Was läuft hier falsch?

Anzeige
AW: Daten mit Schleife abarbeiten
01.11.2012 12:30:32
Tino
Hallo,
du hast deine Zeilen fürs kopieren auch mit im Code.
Gruß Tino

AW: Daten mit Schleife abarbeiten
01.11.2012 12:31:18
Nik
Hab es geschnallt, sprich gemerkt was ich falsch gemacht! Es funktioniert! Vielen lieben Dank! Weiss gar nicht wie ich danken soll! Super! :-)
Gruss
Nik

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige