Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wenn dann Makro
#11
Hallöchen,

hast Du mal die Buchstaben bis F durchgezählt? Ich komme da nicht auf 13.
If .Cells(lRow, 13).Value = "Due" Then

und eine ganze Zeile zu kopieren sind auch nicht nur ein paar Daten
.Rows(lRow).Copy Destination:=Sheets("Maturities").Rows(lN)

Wenn Du nur die Inhalte von A bis I kopieren und ab Spalte A einfügen willst, dann
.Cells(lRow,1).Resize(1,9).Copy Destination:=Sheets("Maturities").Cellss(lN,1)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
Ich habe das natürlich jetzt stark vereinfacht und als Beispiel aufgefasst. Da ist es doch klar, dass die Nummern vom Anfang nicht mehr passen.

Kopiert werden sollen nur einzelne Zellen aus einer Reihe und nicht die ganze Zeile.
Antworten Top
#13
Hallöchen,

hat's denn nun geholfen? Wenn Du etwas vereinfacht beschreibst, sollte es das Ziel immer noch verdeutlichen und nicht verschleiern. Als Antworter sieht man dann nämlich für die Lösung Vereinfachungen, die am Ziel vorbeigehen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#14
Ich habe jetzt mal komplett bei null gestartet anhand des neuen Beispiels:

Sub Maturity()

Dim Tickets As Worksheet    ' das Quell-Tabellenblatt - die Herkunft der Daten
Dim Maturities As Worksheet    ' das Ziel-Tabellenblatt - die Ausgabe
Dim iRow As Long
Dim i As Long
Dim j As Long

Set Tickets = ThisWorkbook.Worksheets("Tickets")
Set Maturities = ThisWorkbook.Worksheets("Maturities")

For iRow = 2 To Tickets.Cells(Rows.Count, 6).End(xlUp).Row
    If Tickets.Range("F" & iRow).Value = "due" Then Maturities.Range("A" & iRow).Value = Tickets.Range("A" & iRow).Value
Next iRow

End Sub


Dies läuft, aber jetzt haben sich neue Fragen ergeben:
1) Wie kann ich weitere Zellen von Tickets nach Maturities kopieren also den THEN Teil erweitern?
2) Wie steuere ich die Zellen in Maturities genau an, so dass es hier keine Leerzellen gibt und alles fein untereinander steht? Momentan steht es an der gleichen Stelle wie im Tab "Tickets"

Die erste Frage habe ich nun selbst gefunden:

Sub Maturity()

Dim Tickets As Worksheet    ' das Quell-Tabellenblatt - die Herkunft der Daten
Dim Maturities As Worksheet    ' das Ziel-Tabellenblatt - die Ausgabe
Dim iRow As Long
Dim i As Long
Dim j As Long

Set Tickets = ThisWorkbook.Worksheets("Tickets")
Set Maturities = ThisWorkbook.Worksheets("Maturities")

For iRow = 2 To Tickets.Cells(Rows.Count, 6).End(xlUp).Row
    If Tickets.Range("F" & iRow).Value = "due" Then
    Maturities.Range("A" & iRow).Value = Tickets.Range("A" & iRow).Value
    Maturities.Range("B" & iRow).Value = Tickets.Range("C" & iRow).Value
    End if
Next iRow

End Sub



Aber für die zweite Frage der Anordnung bräuchte ich eure Hilfe nochmals :)
Antworten Top
#15
Hallöchen,

1) Da könntest Du bei unzusammenhängenden Bereichen mehrere Schritte nehmen
Code:
If Tickets.Range("F" & iRow).Value = "due" Then
          Maturities.Range("A" & iRow).Value = Tickets.Range("A" & iRow).Value
          Maturities.Range("X" & iRow).Value = Tickets.Range("B" & iRow).Value
    End If

2) Da hattest Du mit dem n schon den richtigen Ansatz. Vor der Schleife setzt Du n auf 1 oder einen anderen Ausgangswert. Dann beim If so weiter:
Code:
If Tickets.Range("F" & iRow).Value = "due" Then
          Maturities.Range("A" & n).Value = Tickets.Range("A" & iRow).Value
          Maturities.Range("X" & n).Value = Tickets.Range("B" & iRow).Value
          n=n+1
    End If

Den Startwert von n könntest Du auch wie iRowMax ermitteln, nur dann eben auf dem Blatt Maturities un d1 dazu zählen damit Du die letzte Datenzeile nicht überschreibst.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
Hallo

in dieser Fassung funktioniert das Makro bei mir einwandfrei.  Ich habe aber noch eine Option eingefügt die alten Daten zu löschen.
Wenn das nicht erwünscht ist den mit "##" markierten Teil einfach löschen. Dann werden neue Daten unten angehangen.

mfg  ast 123

Code:
Sub Maturity()

Dim Tickets As Worksheet       ' das Quell-Tabellenblatt - die Herkunft der Daten
Dim Maturities As Worksheet    ' das Ziel-Tabellenblatt - die Ausgabe
Dim iRow As Long
Dim Zeile As Long

Set Tickets = ThisWorkbook.Worksheets("Tickets")
Set Maturities = ThisWorkbook.Worksheets("Maturities")
Zeile = Maturities.Cells(Rows.Count, 1).End(xlUp).Row + 1

'## ggf. Bereich A-C zuerst löschen! Ist das gewünscht??
Maturities.Range("A4:C" & Zeile).ClearContents
Zeile = 4   'Variable auf 1. Zeile setzen
'## oder diesen Teil komplett löschen, dann wird unten angehangen!

For iRow = 2 To Tickets.Cells(Rows.Count, 6).End(xlUp).Row
    If Tickets.Range("F" & iRow).Value = "due" Then
    Maturities.Range("A" & Zeile).Value = Tickets.Range("A" & iRow).Value
    Maturities.Range("B" & Zeile).Value = Tickets.Range("C" & iRow).Value
    Maturities.Range("C" & Zeile).Value = Tickets.Range("E" & iRow).Value
    Zeile = Zeile + 1
    End If
Next iRow

End Sub
Antworten Top
#17
Vielen Dank für eure Hilfen!!!! Jetzt läuft es auch bei mir.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste