Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Inhalt größer Null kopieren

Frage Entwicklung VB for Applications

Mitglied: matester

matester (Level 1) - Jetzt verbinden

11.01.2011, aktualisiert 18.10.2012, 7020 Aufrufe, 16 Kommentare

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.

d0de335ffba8fb324ad2a30d09098113 - Klicke auf das Bild, um es zu vergrößern


Vielen Dank im Voraus




Bild 2

9159ff5f154635501a4978ebd1b17257 - Klicke auf das Bild, um es zu vergrößern
Mitglied: Biber
11.01.2011, aktualisiert 18.10.2012
Moin matester,

Zitat von matester:
Bitte keine Formel ich kann nur ein Makro verwendenl!!!
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
Bitte warten ..
Mitglied: matester
11.01.2011 um 16:42 Uhr
Hallo Biber,

wenn in der Spalte C der Wert 0 auftaucht soll nicht kopiert werden. Ansonsten weiter mit der nächsten Zeile.

Als Ergebnis sollen in den Spalten E und F nur die Inhalte aus B und E stehen wo kein Null-Wert in C vorhanden ist.

Und genau das bekomme ich nicht gebacken!!! Und zum Thema Hausaufgaben habe ich durch Eure Unterstützung schon eine Menge dazugelernt.

Aber ich bin was VB angeht immer noch ein blutiger Anfänger, der noch viel Unterstützung braucht!!!! Vorausgesetzt man bekommt die Unterstützung.
Bitte warten ..
Mitglied: bastla
11.01.2011 um 18:18 Uhr
Hallo matester!

Na dann stütze ich noch mal ...
01.
Sub BedingtKopieren() 
02.
AbZeile = 2 'Erste Datenzeile 
03.
Kriterium = "C" 
04.
Quelle = "B" 
05.
Spalten = 2 
06.
Ziel = "E" 
07.
 
08.
Zeile = AbZeile 
09.
Do While Cells(Zeile, Kriterium) <> "" 
10.
    If Cells(Zeile, Kriterium).Value > 0 Then 
11.
        Cells(Zeile, Quelle).Resize(1, Spalten).Copy Destination:=Cells(Zeile, Ziel) 
12.
    End If 
13.
    Zeile = Zeile + 1 
14.
Loop 
15.
End Sub
Als Zusatzhausübung von mir : Ergänze die fehlenden Kommentare!

Grüße
bastla
Bitte warten ..
Mitglied: Biber
11.01.2011 um 18:38 Uhr
[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]
Bitte warten ..
Mitglied: matester
11.01.2011 um 19:11 Uhr
Hallo bastler,

danke für Deine schnelle Hilfe!!!

Wenn ich das Makro laufen lasse, bekomme ich das Ergebnis siehe Bild 2.
Und das ist ja gerade mein Problem!!!
In den Spalten E und F sollen . . .

Test 1 82
Test 2 2
Test 4 7
Test 8 1
Test 9 9
Test11 15

ohne Leerzeilen (durch 0-Werte in Spalte C) untereinander stehen.


Ich hoffe die fehlenden Kommentare können noch etwas warten???
Bitte warten ..
Mitglied: Pjordorf
11.01.2011 um 19:22 Uhr
Hallo,

Zitat von matester:
ohne Leerzeilen (durch 0-Werte in Spalte C) untereinander stehen.
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?)

01.
Zeile = AbZeile 
02.
ZielZeile=Zeile 
03.
04.
05.
06.
    If Cells(Zeile, Kriterium).Value > 0 Then 
07.
        Cells(Zeile, Quelle).Resize(1, Spalten).Copy Destination:=Cells(ZielZeile, Ziel) 
08.
        ZielZeile=ZielZeile + 1 
09.
    End If 
10.
11.
12.
.
Gruß,
Peter

[Edit] Nachbearbeitet [Edit]
Bitte warten ..
Mitglied: matester
11.01.2011 um 20:33 Uhr
Hallo Peter,

danke für die Unterstützung mit dem Zeilenzähler!!!
Hätte es nicht allein geschafft.

Leider läuft der Zeilenzähler nur einmal, d.h. nur ein Eintrag in der Spalte E und F (Test 1).
Die Daten Test 2, Test 4, Test 8, Test 9 und Test 11 werden nicht kopiert.


Sub BedingtKopieren()
AbZeile = 2 'Erste Datenzeile
Kriterium = "C"
Quelle = "B"
Spalten = 2
Ziel = "E"
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
End Sub
Bitte warten ..
Mitglied: Pjordorf
11.01.2011 um 20:55 Uhr
Hallo,

Zitat von matester:
danke für die Unterstützung mit dem Zeilenzähler!!!
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 Code Blöcke/tags.

01.
Sub BedingtKopieren() 
02.
 
03.
AbZeile = 2 'Erste Datenzeile 
04.
Kriterium = "C" 
05.
Quelle = "B" 
06.
Spalten = 2 
07.
Ziel = "E" 
08.
Zeile = AbZeile 
09.
ZielZeile=Zeile 
10.
 
11.
Do While Cells(Zeile, Kriterium) <> "" 
12.
    If Cells(Zeile, Kriterium).Value > 0 Then 
13.
        Cells(Zeile, Quelle).Resize(1, Spalten).Copy Destination:=Cells(Zeile, Ziel) 
14.
    End If 
15.
    Zeile = Zeile +1 
16.
Loop 
17.
 
18.
End Sub
Gruß,
Peter
Bitte warten ..
Mitglied: bastla
11.01.2011 um 21:29 Uhr
@Biber
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
Bitte warten ..
Mitglied: 76109
11.01.2011 um 23:42 Uhr
Hallo Peter!

Jetzt hast Du aber in diesem ganzen Wirrwarr auch einen Teil vergessen mit einzufügen:
01.
Sub BedingtKopieren() 
02.
    AbZeile = 2 'Erste Datenzeile 
03.
    Kriterium = "C" 
04.
    Quelle = "B" 
05.
    Spalten = 2 
06.
    Ziel = "E" 
07.
     
08.
    Zeile = AbZeile 
09.
    ZielZeile = AbZeile 
10.
     
11.
    Do While Cells(Zeile, Kriterium) <> "" 
12.
        If Cells(Zeile, Kriterium).Value > 0 Then 
13.
            Cells(Zeile, Quelle).Resize(1, Spalten).Copy Cells(ZielZeile, Ziel) 
14.
            ZielZeile = ZielZeile + 1 
15.
        End If 
16.
         
17.
        Zeile = Zeile + 1 
18.
    Loop 
19.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: bastla
11.01.2011 um 23:47 Uhr
@Dieter
Das war doch die Aufgabe für matester ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
11.01.2011 um 23:49 Uhr
@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
Bitte warten ..
Mitglied: matester
12.01.2011 um 10:51 Uhr
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. Es gibt viele Möglichkeiten auf unseren Seiten etwas zu bewegen.
Wir freuen uns auf Ihren Beitrag.

Daraufhin habe ich mich registriert und dachte, mit einiger Unterstützung von den Fachleuten hier im Forum, könnte ich so die ersten Schritte bezüglich VB im Selbststudium erlernen.
Leider ohne den entsprechenden Erfolg, den einige von mir in den 5 Monaten erwartet haben.
Mir scheint, ich habe nicht nur die Hinweise von Biber und Peter nicht verstanden, sonder auch den o.a. Text nicht!!!
Ich wollte auch niemanden ausnutzen, sonder brauchte einfach nur Hilfe.

Glücklicherweise haben andere über diese Schwäche bzw. über mein Unvermögen hinweggesehen.
Herzlichen Dank an Dieter und bastla!!!
Bitte warten ..
Mitglied: 76109
12.01.2011 um 13:21 Uhr
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
Bitte warten ..
Mitglied: Biber
12.01.2011 um 13:44 Uhr
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.

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.
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
Bitte warten ..
Mitglied: Pjordorf
13.01.2011 um 03:30 Uhr
Hallo Dieter,

Zitat von 76109:
Jetzt hast Du aber in diesem ganzen Wirrwarr auch einen Teil vergessen mit einzufügen:
Autsch. da habe ich nicht aufgepasst bei dem ganzen copy & paste Danke-

Gruß,
Peter
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Access: Spalten ist Anzahl Wenn größer NULL
gelöst Frage von Pilger83VB for Applications11 Kommentare

Hallo zusammen, kurze Frage, wahrscheinlich mega simpl aber komm einfach nicht drauf auch mit google nicht. habe in Access ...

Visual Studio
Inhalt einer Textbox mit einem Button kopieren?
gelöst Frage von noah1400Visual Studio2 Kommentare

Hey weiß vielleicht jemand wie man den inhalt einer Textbox koppiert ohne rechtsklick kopieren sondern indem man einfach auf ...

Backup
Mit cmd nur Unterordner und dessen Inhalt kopieren
gelöst Frage von red-edBackup5 Kommentare

Guten Tag, ich bin schon öfters auf eurer Seite fündig geworden, nun habe ich aber ein Problem das bestimmt ...

Batch & Shell
Inhalt von Ordner Kopieren und damit Inhalt von Ordner2 überschrieben
gelöst Frage von sigisigiBatch & Shell2 Kommentare

Hallo Zusammen Ich habe ein Problem mit dem kopieren von Dateien. Ziel: Der Inhalt von "zwbu2wua.default" ohne Ordner namen ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 10 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 15 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 15 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
SMBv1 deaktivieren führte zur Katastrophe, keine Domänenanmeldung mehr
Frage von Freak-On-SiliconWindows Server14 Kommentare

Servus; Habe Mist gebaut. Umgebung: Server 2012R2 Domäne 2x DC ~10 Memberserver (2012R2 und 2008R2) ~100 Windows 8 Clients ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Grafikkarten & Monitore
2x 4K Monitore an einer GraKa betreiben
gelöst Frage von JollyJumper83Grafikkarten & Monitore10 Kommentare

Hallo liebe IT-Gemeinde, ich bin auf der Suche nach einer kostengünstigen GraKa für meinen Präsentations-PC. Wir möchten in unserem ...