Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle kopieren wenn Bedinung erfüllt

Zelle kopieren wenn Bedinung erfüllt
Jan
Guten Morgen zusammen,
ich bin auf der Suche nach einer möglicherweise relativ simplen VBA Lösung. Ich hoffe Ihr könnt mir helfen! :-)
Bei der angehängten Datei möchte ich gerne, dass die Namen (Blatt "Ausgangswerte") hinter denen "SPD" steht in das Blatt "Ziel" eine Zelle (D2) kopiert werden. Die Namen sollen in der Zelle D2 verkettet werden, sodass sie alle hintereinander in der Zelle stehen.
Das Gleiche soll mit den Namen hinter denen "KLM" steht geschehen.
In der Folge hätte ich dann noch mehr Buchstabenvariationen, die ich dann ja wahrscheinlich selber ergänzen könnte.
Ich hoffe ihr versteht mein Anliegen.
Danke vorab und viele Grüße
Jan
https://www.herber.de/bbs/user/81078.xls
AW: Zelle kopieren wenn Bedinung erfüllt
19.07.2012 11:38:47
Wenderhold
Option Explicit
Public Sub concatenate()
Dim i As Integer
Dim szStr As String
For i = 4 To 25
If Sheets(1).Cells(i, 6).Value = "SPD" Then
szStr = szStr + Sheets(1).Cells(i, 1).Value + Chr(10)
End If
Next i
Sheets(2).Cells(2, 4).Value = szStr
End Sub

AW: Zelle kopieren wenn Bedinung erfüllt
19.07.2012 11:59:53
Jan
Welch atemberaubendes Tempo! :-)
Vielen Dank an euch beide - funktioniert natürlich beides, habe mich aber final für die Möglichkeit von Wenderhold entschieden.
Vielen Dank für eure Hilfe...!
:-)
Bis dahin....!
Anzeige
Hinweis zu Risiken mit dem Blattindex ...
20.07.2012 08:41:32
Matthias
Hallo Jan
bitte nur als Info betrachten (ich möchte keinesfalls die Arbeit anderer Helfer in Frage stellen)
Es ist ja völlig egal für welche Variante Du Dich entschieden hast.
Aber ich möchte Dich wenigstens darauf hinweisen das die Arbeit
mit dem Index der Blätter auch Risiken hat.
Genau dann wenn Du z.B. die Blätter tauschst, oder wenn Blätter am Anfang hinzugefügt werden.
Dann ist der Index verschoben.
Schau Dir dazu bitte die Datei an.
https://www.herber.de/bbs/user/81096.xls
Gruß Matthias
Anzeige
AW: Hinweis zu Risiken mit dem Blattindex ...
20.07.2012 08:56:26
Jan
Guten Morgen Matthias :-)
Dieser Zusammenhang ist mir gestern schon aufgefallen, als ich testweise ein anderes Tabellenblatt in die Arbeitsmappe eingefügt habe.
Ehrlich gesagt habe ich auf Anhieb nicht verstanden warum der Code dann nicht mehr funktionierte und hatte auch keine Zeit drüber nachzudenken.
Dank dir habe ich es nun verstanden und vor dem Hintergrund ist deine Lösung zu bevorzugen und findet nun auch Anwednung. :-)
Vielen Dank, dass du dir trotz des augenscheinlich gelöstet Problems noch einmal die Mühe gemacht hast mir den Unterschied zu erklären und eine weitere Beispielmappe hochzuladen.
Wirklich klasse!!!
Viele Grüße
Jan
Anzeige
Danke für die Rückmeldung :-) oT
20.07.2012 11:18:27
Matthias
AW: Zelle kopieren wenn Bedinung erfüllt
20.07.2012 11:47:59
Wenderhold
Hallo Matthias
Worksheet.CodeName-Eigenschaft
Gibt den Codenamen für das Objekt zurück. Schreibgeschützter String-Wert.
Syntax
Ausdruck.CodeName
Ausdruck Ein Ausdruck, der ein Worksheet-Objekt zurückgibt.
Anmerkungen
Der Wert, der im Fenster Eigenschaften in der Zelle rechts neben (Name) angezeigt wird, ist der Codename des ausgewählten Objekts. Sie können den Codenamen eines Objekts während der Entwurfszeit ändern, indem Sie diesen Wert ändern. Eine programmgesteuerte Änderung dieser Eigenschaft während der Ausführung des Programms ist nicht möglich.
Der Codename für ein Objekt kann anstelle eines Ausdrucks verwendet werden, der das Objekt zurückgibt. Wenn der Codename des ersten Arbeitsblatts "Sheet1" lautet, stimmen die beiden folgenden Ausdrücke miteinander überein:
Worksheets(1).Range("a1")
Sheet1.Range("a1")
Wenn Du Dein Blatt umbenennst z.B. in sheets1 , dann kannst Du Blätter einfügen so viel Du willst und der Code passt immer noch.
MfG
Wd
Anzeige
ich glaube Du hast es falsch verstanden
20.07.2012 13:44:55
Matthias
Hallo
Hast Du meinen Beitrag
https://www.herber.de/forum/archiv/1268to1272/t1271815.htm#1271947
überhaupt koplett gelesen ?
Da ging es auch um das Verschieben von Tabellen an eine andere Index-Position.
Und wie Du der Antwort von Jan entnehmen kannst, war er auch sichtlich froh das ich ihm das erläutert habe.



    In Deinem Beitrag hast Du den BlattIndex
  • If Sheets(1).Cells(i, 6).Value = "SPD" Then

  • benutzt und das ist eben mit einem gewissen Risiko behaftet.



Wenn Du Dich gekränkt fühlst, so tut mir das leid!
Ich hatte aber im Beitrag extra darauf hingewiesen das es nur als Info zu verstehen sein soll
und in keinster Weise Deine Hilfe schmälert.
MfG Matthias L
Anzeige
AW: ich glaube Du hast es falsch verstanden
20.07.2012 14:08:37
Jan
Hallo nocheinmal :-)
Der Diskussion kann ich ob meines eher geringen Wissen über VBA Codes leider nicht folgen ;-).
Da muss ich mich wohl ersteinmal eine Weile mit beschäftigen um komplexere Zusammenhänge richtig deuten zu können...
Schlussendlich ist für mich auch nicht entscheidend ob es eine "richtigere" Lösung geht, beide wären wohl möglich gewesen, solange man auch bei kleineren Problemen selbständig einen Ausweg kennt.
Entscheidend ist für mich:
Ich verfasse eine Frage um 11:15 und erhalte 2 Antworten innerhalb der folgenden 30 Minuten.
Das rechne ich dem Forum und letzlich euch beiden hoch an, es gibt auch Foren da wartet man Stunden, Tage oder vergeblich....
In dem Sinne nochmal Danke an euch beide für die Hilfe..., ich lerne momentan von jeder neuen Codezeile...
Wünsche ein angenehmes Wochenende...!
VG
Jan
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige