Supportnet Computer
Planet of Tech

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ß

Antwort 2 von fürLau

Hallo

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 Sub


Gruß

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:

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 Sub


Gruß,
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

Antwort 5 von fürLau

Hallo

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
 Exit For 
heißen

Gruß

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: