Inhalt größer Null kopieren
Hallo Leute ich benötige bezüglich VB Eure Hilfe
Bitte keine Formel ich kann nur ein Makro verwendenl!!!
Wenn in der Spalte C der Wert größer Null ist, dann soll der Inhalt von Spalte B in Spalte E kopiert werden und der Inhalt von Spalte C in Spalte F.
Ist der Wert in Spalte C 0 dann soll zur nächsten Zeile gesprungen werden, also nichts kopieren. Es sollen keine leeren Zellen in Spalte E und F entstehen.
Vielen Dank im Voraus
Bild 2
Bitte keine Formel ich kann nur ein Makro verwendenl!!!
Wenn in der Spalte C der Wert größer Null ist, dann soll der Inhalt von Spalte B in Spalte E kopiert werden und der Inhalt von Spalte C in Spalte F.
Ist der Wert in Spalte C 0 dann soll zur nächsten Zeile gesprungen werden, also nichts kopieren. Es sollen keine leeren Zellen in Spalte E und F entstehen.
Vielen Dank im Voraus
Bild 2
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 158378
Url: https://administrator.de/contentid/158378
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
16 Kommentare
Neuester Kommentar
Moin matester,
Schon wieder eine zeitnah fällige Hausaufgabe?
Wenn du "nur ein Makro verwenden" kannst, dann hast du bestimmt schon einen Ansatz.
Bei welcher Prüfung, bei welchem logischen Problem scheiterst du denn jetzt??
Die in Frage kommenden Properties und Methoden hast du doch alle schon mal selbst hier gepostet im Beitrag Keine ganzen Zeilen sondern nur den Bereich kopieren, der übrigens auf "Hinreichend beantwortet" steht.
Etwas verwundert
Biber
Schon wieder eine zeitnah fällige Hausaufgabe?
Wenn du "nur ein Makro verwenden" kannst, dann hast du bestimmt schon einen Ansatz.
Bei welcher Prüfung, bei welchem logischen Problem scheiterst du denn jetzt??
Die in Frage kommenden Properties und Methoden hast du doch alle schon mal selbst hier gepostet im Beitrag Keine ganzen Zeilen sondern nur den Bereich kopieren, der übrigens auf "Hinreichend beantwortet" steht.
Etwas verwundert
Biber
Hallo matester!
Na dann stütze ich noch mal ...
Als Zusatzhausübung von mir : Ergänze die fehlenden Kommentare!
Grüße
bastla
Na dann stütze ich noch mal ...
Sub BedingtKopieren()
AbZeile = 2 'Erste Datenzeile
Kriterium = "C"
Quelle = "B"
Spalten = 2
Ziel = "E"
Zeile = AbZeile
Do While Cells(Zeile, Kriterium) <> ""
If Cells(Zeile, Kriterium).Value > 0 Then
Cells(Zeile, Quelle).Resize(1, Spalten).Copy Destination:=Cells(Zeile, Ziel)
End If
Zeile = Zeile + 1
Loop
End Sub
Grüße
bastla
[OT] @bastla
Hmmmja...
ich hatte eher gehofft, dass er bei einem dezenten Hinweis auf frühere Stützradübungen hier im Forum so ein Deja-wusst-ich-doch-schomma-Erlebnis hat.
Ich meine, nach fünf Monaten als blutiger Excel-Makro-Anfänger hier....
a) blutet der mir noch irgendwann aus und
b) saut der den ganzen Forumsboden voll
Und wie alle wissen: zart besaitete Halbmods wie ich können kein Blut sehen... nein, nicht wegen Kurzsichtigkeit oder Nachtblindheit...
@matester: du wirst mit dem Makros-selber-sägen nicht flotter, wenn du dir Komplett-Copy&Paste-Vorlagen liefern lässt.
Versuch bitte, das Umsetz-Problem ein bisschen mehr einzugrenzen - auch dann kann und wird das Forum gerne unterstützen.
Grüße
Biber
[/OT]
Hmmmja...
ich hatte eher gehofft, dass er bei einem dezenten Hinweis auf frühere Stützradübungen hier im Forum so ein Deja-wusst-ich-doch-schomma-Erlebnis hat.
Ich meine, nach fünf Monaten als blutiger Excel-Makro-Anfänger hier....
a) blutet der mir noch irgendwann aus und
b) saut der den ganzen Forumsboden voll
Und wie alle wissen: zart besaitete Halbmods wie ich können kein Blut sehen... nein, nicht wegen Kurzsichtigkeit oder Nachtblindheit...
@matester: du wirst mit dem Makros-selber-sägen nicht flotter, wenn du dir Komplett-Copy&Paste-Vorlagen liefern lässt.
Versuch bitte, das Umsetz-Problem ein bisschen mehr einzugrenzen - auch dann kann und wird das Forum gerne unterstützen.
Grüße
Biber
[/OT]
Hallo,
Na, dann baue dir doch einen zusätzlichen Zeilenzähler für deine Zielzeile ein (aber da bist du ja schon selbst drauf gekommen, oder?)
Gruß,
Peter
[Edit] Nachbearbeitet [Edit]
Na, dann baue dir doch einen zusätzlichen Zeilenzähler für deine Zielzeile ein (aber da bist du ja schon selbst drauf gekommen, oder?)
Zeile = AbZeile
ZielZeile=Zeile
.
.
.
If Cells(Zeile, Kriterium).Value > 0 Then
Cells(Zeile, Quelle).Resize(1, Spalten).Copy Destination:=Cells(ZielZeile, Ziel)
ZielZeile=ZielZeile + 1
End If
.
.
.
Gruß,
Peter
[Edit] Nachbearbeitet [Edit]
Hallo,
Bitte.
Und, du hast es immer noch nicht verstanden angebotene Hilfe auch zu Lesen, hier nochmals der Hinweis auf verwendung der Formatierungen in den Beiträgen.
Gruß,
Peter
Bitte.
Hätte es nicht allein geschafft.
Das glaube ich dir (jetzt)Leider läuft der Zeilenzähler nur einmal, d.h. nur ein Eintrag in der Spalte E und F (Test 1).
Ja, denn du hast zwar die Variable ZielZeile korrekt übernommen, dafür hast du aber deine Schleife Do ... Loop nicht mehr. Warum nicht? Etwas mitdenken solltest du schon, und wenn du wie @Biber schon feststellte, solltest du nach 5 Monate VBA mit Excell etwas mehr drauf haben (kopfschüttel)Und, du hast es immer noch nicht verstanden angebotene Hilfe auch zu Lesen, hier nochmals der Hinweis auf verwendung der Formatierungen in den Beiträgen.
Sub BedingtKopieren()
AbZeile = 2 'Erste Datenzeile
Kriterium = "C"
Quelle = "B"
Spalten = 2
Ziel = "E"
Zeile = AbZeile
ZielZeile=Zeile
Do While Cells(Zeile, Kriterium) <> ""
If Cells(Zeile, Kriterium).Value > 0 Then
Cells(Zeile, Quelle).Resize(1, Spalten).Copy Destination:=Cells(Zeile, Ziel)
End If
Zeile = Zeile +1
Loop
End Sub
Gruß,
Peter
@Biber
Ich hatte ja auch überlegt, die Zeile 11 durch den besagten Hinweis zu ersetzen, wollte dann aber doch noch einen neuen Aspekt ("
@matester
Sorry - den letzten Satz hatte ich übersehen - aber was Dir Peter unten an Ergänzung angeboten hat, solltest Du nun tatsächlich zum gewünschten Ergebnis kombinieren können ...
Grüße
bastla
Ich hatte ja auch überlegt, die Zeile 11 durch den besagten Hinweis zu ersetzen, wollte dann aber doch noch einen neuen Aspekt ("
Resize
") hinzufügen (was retrospektiv allerdings eher entbehrlich erscheint) ...@matester
Sorry - den letzten Satz hatte ich übersehen - aber was Dir Peter unten an Ergänzung angeboten hat, solltest Du nun tatsächlich zum gewünschten Ergebnis kombinieren können ...
Grüße
bastla
Hallo Peter!
Jetzt hast Du aber in diesem ganzen Wirrwarr auch einen Teil vergessen mit einzufügen:
Gruß Dieter
Jetzt hast Du aber in diesem ganzen Wirrwarr auch einen Teil vergessen mit einzufügen:
Sub BedingtKopieren()
AbZeile = 2 'Erste Datenzeile
Kriterium = "C"
Quelle = "B"
Spalten = 2
Ziel = "E"
Zeile = AbZeile
ZielZeile = AbZeile
Do While Cells(Zeile, Kriterium) <> ""
If Cells(Zeile, Kriterium).Value > 0 Then
Cells(Zeile, Quelle).Resize(1, Spalten).Copy Cells(ZielZeile, Ziel)
ZielZeile = ZielZeile + 1
End If
Zeile = Zeile + 1
Loop
End Sub
Gruß Dieter
@bastla!
Ups, habe ich Leider irgendwie übersehen
Naja, bei dem, was ich bis jetzt so gelesen habe, habe ich da keine allzugroße Hoffnung, dass der TO das gebacken bekommt. Zumindest in Peters Codezeile13 habe ich da so meine Bedenken?
Gruß Dieter
Ups, habe ich Leider irgendwie übersehen
Naja, bei dem, was ich bis jetzt so gelesen habe, habe ich da keine allzugroße Hoffnung, dass der TO das gebacken bekommt. Zumindest in Peters Codezeile13 habe ich da so meine Bedenken?
Gruß Dieter
Hallo matester!
Sorry, aber die Einwände von Biber und Peter sind schon berechtigt. Und bedauerlicherweise hast Du diese auch mißverstanden. Und sicherlich ist es auch das Ziel in diesem Forum, anderen zu helfen. D.h. aber nicht, gleich Komplettlösungen zu liefern. Zumindest dann nicht, wenn jemand schreibt, dass er eine Hausaufgabe hat, sich bereits seit 5 Monaten mit VBA beschäftigt und noch dazulernen möchte Und in diesem speziellen Fall hat man ja tatsächlich den Eindruck, dass Du Dir nicht wirklich die Mühe gemacht hast, etwas mitzudenken.
Und wenn Du - mit Verlaub gesagt - nach 5 Monaten, nicht in der Lage bist eine so einfache Aufgabe selbst zu lösen, dann beklag Dich nicht über gerechtfertigte Kritik, sondern streng Dich ein wenig mehr an und überrasch uns das nächste mal
Und der Dank geht natürlich in erster Linie an bastla, der gleich die richtige Lösung gepostet hätte, sofern Du Deine Hausaufgabe besser beschrieben hättest und Peter, der ja die richtige Ergänzung zu bastlas Code geliefert hat. Trotz Deines Unvermögens, hätte Dir bei minimalem Mitdenken auffallen müssen, dass es ohne Schleife überhaupt nicht funktionieren kann. Von daher waren wir wohl alle etwas von Dir entäuscht
Ich würde Dir auch empfehlen das Debugger-Werkzeug zu verwenden und den Code mal in Einzelschritten zu verfolgen (Cursor auf Sub und dann immer F8 drücken) bzw. zu sehen, was in den einzelnen Schritten so alles passiert, wie sich die Werte in den Variablen verändern usw.
Gruß Dieter
Sorry, aber die Einwände von Biber und Peter sind schon berechtigt. Und bedauerlicherweise hast Du diese auch mißverstanden. Und sicherlich ist es auch das Ziel in diesem Forum, anderen zu helfen. D.h. aber nicht, gleich Komplettlösungen zu liefern. Zumindest dann nicht, wenn jemand schreibt, dass er eine Hausaufgabe hat, sich bereits seit 5 Monaten mit VBA beschäftigt und noch dazulernen möchte Und in diesem speziellen Fall hat man ja tatsächlich den Eindruck, dass Du Dir nicht wirklich die Mühe gemacht hast, etwas mitzudenken.
Und wenn Du - mit Verlaub gesagt - nach 5 Monaten, nicht in der Lage bist eine so einfache Aufgabe selbst zu lösen, dann beklag Dich nicht über gerechtfertigte Kritik, sondern streng Dich ein wenig mehr an und überrasch uns das nächste mal
Und der Dank geht natürlich in erster Linie an bastla, der gleich die richtige Lösung gepostet hätte, sofern Du Deine Hausaufgabe besser beschrieben hättest und Peter, der ja die richtige Ergänzung zu bastlas Code geliefert hat. Trotz Deines Unvermögens, hätte Dir bei minimalem Mitdenken auffallen müssen, dass es ohne Schleife überhaupt nicht funktionieren kann. Von daher waren wir wohl alle etwas von Dir entäuscht
Ich würde Dir auch empfehlen das Debugger-Werkzeug zu verwenden und den Code mal in Einzelschritten zu verfolgen (Cursor auf Sub und dann immer F8 drücken) bzw. zu sehen, was in den einzelnen Schritten so alles passiert, wie sich die Werte in den Variablen verändern usw.
Gruß Dieter
Moin matester,
ja, es war durchaus meine Absicht, Kritik zu üben.
Nein, es ging mir dabei nicht darum, Schwächen herauszustreichen oder dir Unvermögen zu unterstellen.
Tut mir leid, wenn diese Kritik bei dir als nicht konstruktiv oder gar Hilfeverweigerung ankommt.
Zu deinem Zitat aus den "Hinweisen aus dem Forum" - unterschreib ich jeden einzelnen Punkt.
Lass uns doch nochmal gemeinsam lesen - vielleicht betone ich es anders.
Ich kann dich doch nicht kommentarlos vor dich hinbluten lassen....
Grüße
Biber
ja, es war durchaus meine Absicht, Kritik zu üben.
Nein, es ging mir dabei nicht darum, Schwächen herauszustreichen oder dir Unvermögen zu unterstellen.
Tut mir leid, wenn diese Kritik bei dir als nicht konstruktiv oder gar Hilfeverweigerung ankommt.
Zu deinem Zitat aus den "Hinweisen aus dem Forum" - unterschreib ich jeden einzelnen Punkt.
Lass uns doch nochmal gemeinsam lesen - vielleicht betone ich es anders.
Zitat von @matester:
Hinweise aus dem Forum:
Stellen Sie uns auf die Probe, fordern Sie uns heraus und fragen Sie uns und alle anderen Mitglieder nach Lösungen.
Teilen Sie uns Ihre Probleme mit.
Die aber bitte nicht lauten sollten: Ich würde gerne etwas Copy&Pasten.Hinweise aus dem Forum:
Stellen Sie uns auf die Probe, fordern Sie uns heraus und fragen Sie uns und alle anderen Mitglieder nach Lösungen.
Teilen Sie uns Ihre Probleme mit.
Lernen Sie mit unserer Hilfe Ihre eigenen Probleme zu lösen.
Genau das sagte ich doch....Es gibt viele Möglichkeiten auf unseren Seiten etwas zu bewegen.
Oder mal bewegende Momente mitzuerleben.Wir freuen uns auf Ihren Beitrag.
und du dich hoffentlich auf jeden Kommentar.Ich kann dich doch nicht kommentarlos vor dich hinbluten lassen....
Grüße
Biber