Supportnet / Forum / Tabellenkalkulation
jeweils letzten numerischen Wert kopieren
Frage
Hallo,
in Zelle D7 steht z. B. ein numerischer Wert, den ich in Zelle D43 benötige, dann folgt der nächste Wert in Zelle D46, den ich in D91 benötige, dann D94 in D134 usw., also total unregelmäßig.
Die Spalte D ist aber ansonsten nicht leer, dazwischen befinden sich immer wieder Textfragmentedie ich aber nicht benötige.
Die einzige Regelmäßigkeit ist die, dass rechts neben der Zielzelle in Spalte E ein bestimmter Text steht und dass ich in der Zielzelle den jeweils letzten vorkommenden numerischen Wert benötige.
Sorry, das Problem ist nicht einfach zu schildern. Es handelt sich um eine importierte Textdatei, die in einem Drucklistenformat vorliegt.
Viele Grüße
Rolf
Antwort 1 von fürLau
Hallo
Kannst Du die Datei, zwecks besserem Verständnis, z.B. bei www.netupload.de veröffentlichen?
Oder ist es so, daß Du nur den von unten nach oben nächstliegenen numerischen Werte in Spalte D, nach D kopieren willst, wenn in derselben Zeile in Spalte E ?WAS? steht?
Gruß
Kannst Du die Datei, zwecks besserem Verständnis, z.B. bei www.netupload.de veröffentlichen?
Oder ist es so, daß Du nur den von unten nach oben nächstliegenen numerischen Werte in Spalte D, nach D kopieren willst, wenn in derselben Zeile in Spalte E ?WAS? steht?
Gruß
Antwort 2 von fürLau
Hallo
Ohne Gewähr:
Gruß
Ohne Gewähr:
Private Sub CommandButton2_Click()
Dim zeile As Long, Suchzeile As Long
´_______________________________Supportnet´s__Foren-Frame_erweitern______
For zeile = 1 To Worksheets("Tabelle1").Range("E65536").End(xlUp).Row
´In Spalte E nach "bestimmter Text" suchen
If Cells(zeile, 5).Value = "bestimmter Text" Then
For Suchzeile = zeile To 1 Step -1
´in spalte D nach dem jeweils letzten numerischen Wert suchen (nach oben)
If IsNumeric(Cells(Suchzeile, 4).Value) Then
´letzten Wert übernehmen
Cells(zeile, 4).Value = Cells(Suchzeile, 4).Value
End If
Next
End If
Next
End SubGruß
Antwort 3 von CaroS
Hallo fürLau,
genauso verstehe ich das Problem auch und das Makro hätte man auch nicht viel besser schreiben können. Allerdings finde ich, dass ein Abbruch nach erfolgreicher Aktion sinnvoll ist, sonst ackert das arme Makro weiter bis ganz nach oben und was das für Folgen haben kann, brauche ich Dir ja nicht erklären.
Deshalb - Deine Genehmigung mal stillschweigend vorausgesetzt - mein Senf dazu:
Gruß,
CaroS
genauso verstehe ich das Problem auch und das Makro hätte man auch nicht viel besser schreiben können. Allerdings finde ich, dass ein Abbruch nach erfolgreicher Aktion sinnvoll ist, sonst ackert das arme Makro weiter bis ganz nach oben und was das für Folgen haben kann, brauche ich Dir ja nicht erklären.
Deshalb - Deine Genehmigung mal stillschweigend vorausgesetzt - mein Senf dazu:
Private Sub CommandButton2_Click()
Dim zeile As Long, Suchzeile As Long
´_______________________________Supportnet´s__Foren-Frame_erweitern______
For zeile = 1 To Worksheets("Tabelle1").Range("E65536").End(xlUp).Row
´In Spalte E nach "bestimmter Text" suchen
If Cells(zeile, 5).Value = "bestimmter Text" Then
For Suchzeile = zeile To 1 Step -1
´in spalte D nach dem jeweils letzten numerischen Wert suchen (nach oben)
´und zwar nur nach dem letzten und dann aufhören!
If IsNumeric(Cells(Suchzeile, 4).Value) Then
´letzten Wert übernehmen
Cells(zeile, 4).Value = Cells(Suchzeile, 4).Value
Exit Sub
End If
Next
End If
Next
End SubGruß,
CaroS
Antwort 4 von schumach
Hallo,
vielen Dank. Na, da seid ihr an den Richtigen gekommen, von VBA hab´ ich keine Ahnung. Funktioniert hat´s nicht, aber das könnte auch an meinen VBA-Kenntnissen liegen.
Ich hab´ die Datei mal hochgeladen, in der Tabelle1 befindet sich das Original. Der Suchtext "40-ELKO mit Bep" ist jetzt in Spalte C, eingefügt werden soll die Nummer aus Spalte B (auch in Spalte B, kann aber auch eine neue Spalte sein).
Das Ergebnis soll wie in Tabelle2 aussehen, dann kann ich alle überflüssigen Zeilen löschen und habe ein Endprodukt wie Tabelle3.
http://www.netupload.de/detail.php?img=d56ffd3ba2c0c06799cdf36b90d8e11f.xls
Wenn sich der Aufwand in Grenzen hält, bitte ich nochmal um einen Tipp, ansonsten versuche ich es beim Urheber der Original-Liste. Mit dem Andruck der Nummer in der richtigen Zeile wären ja alle Probleme gelöst.
Viele Grüße und vielen Dank
Rolf
vielen Dank. Na, da seid ihr an den Richtigen gekommen, von VBA hab´ ich keine Ahnung. Funktioniert hat´s nicht, aber das könnte auch an meinen VBA-Kenntnissen liegen.
Ich hab´ die Datei mal hochgeladen, in der Tabelle1 befindet sich das Original. Der Suchtext "40-ELKO mit Bep" ist jetzt in Spalte C, eingefügt werden soll die Nummer aus Spalte B (auch in Spalte B, kann aber auch eine neue Spalte sein).
Das Ergebnis soll wie in Tabelle2 aussehen, dann kann ich alle überflüssigen Zeilen löschen und habe ein Endprodukt wie Tabelle3.
http://www.netupload.de/detail.php?img=d56ffd3ba2c0c06799cdf36b90d8e11f.xls
Wenn sich der Aufwand in Grenzen hält, bitte ich nochmal um einen Tipp, ansonsten versuche ich es beim Urheber der Original-Liste. Mit dem Andruck der Nummer in der richtigen Zeile wären ja alle Probleme gelöst.
Viele Grüße und vielen Dank
Rolf
Antwort 5 von fürLau
Hallo
Bitteschön hier zum downloaden
Das Makro nun über Extras | Makro | Makros | Ausführen starten.
Gruß
Bitteschön hier zum downloaden
Das Makro nun über Extras | Makro | Makros | Ausführen starten.
Gruß
Antwort 6 von fürLau
@CaroS
Danke für die Optimierung.;-)
..aber es muß natürlich
Gruß
Danke für die Optimierung.;-)
..aber es muß natürlich
Exit For heißenGruß
Antwort 7 von schumach
Hallo,
bin begeistert.
Rot und fett hatte ich eigentlich nur eingesetzt, damit klar ist was ich meine. Selbst diese Formatierung erscheint jetzt! Keine Bange, diese Änderung kriege ich alleine hin. 8-))
Mein Problem und der fertige VBA-Code haben mich "genötigt", mich doch mal mit VBA auseinanderzusetzen. Ich habe viel gelernt.
Vielen, vielen Dank an euch beide.
Rolf
bin begeistert.
Rot und fett hatte ich eigentlich nur eingesetzt, damit klar ist was ich meine. Selbst diese Formatierung erscheint jetzt! Keine Bange, diese Änderung kriege ich alleine hin. 8-))
Mein Problem und der fertige VBA-Code haben mich "genötigt", mich doch mal mit VBA auseinanderzusetzen. Ich habe viel gelernt.
Vielen, vielen Dank an euch beide.
Rolf
Antwort 8 von CaroS
Guten Morgen fürLau,
ja na klar, Exit For! Das kommt davon, wenn man´s einfach nur in den Tread hineinschreibt und nicht ausprobiert. (Ebenso wie bei Schreibfehlern, die schon der VBA-Editor korrigieren würde.) Aber man hat/nimmt sich eben nicht immer die Zeit.
Gruß und einen schönen Tag!
CaroS
ja na klar, Exit For! Das kommt davon, wenn man´s einfach nur in den Tread hineinschreibt und nicht ausprobiert. (Ebenso wie bei Schreibfehlern, die schon der VBA-Editor korrigieren würde.) Aber man hat/nimmt sich eben nicht immer die Zeit.
Gruß und einen schönen Tag!
CaroS

