Anzeige
Archiv - Navigation
1768to1772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code

VBA Code
13.07.2020 16:15:29
Hris
Hallo Zusammen,
ich möchte gerne meinen VBA Code erweitern.
Bisher habe ich es Beispielhaft so gemacht:
If Code1 = True Then
Workbooks.Open Filename:="Test"
Workbooks("Test").Worksheets("Tabelle1").Range("A1:D1").Copy
Workbooks("Ziel").Worksheets("Tabelle1").Range("A1").Cells(65536, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Funktioniert an sich sehr zuverlässig es ensteht nur folgendes Problem in meiner Datenbank die ich versuche zu erstellen:
Z.Bsp.
GELB / GELB / GELB / BLAU / GELB
BLAU / BLAU / BLAU / LEER / BLAU
soll aber so werden
GELB / GELB / GELB / LEER / GELB
BLAU / BLAU / BLAU / BLAU / BLAU
Ich hoffe das ist verständlich.
als zweites gibt es auch sachen, wo von einer anderen vorlage ein anderer wert aber in dieselbe zeile in ein bisher leergebliebenes feld kopieren. keine ahnung wie ich das programmieren soll.
Ich vereinfache das nochmal.
1. Suche nach "X" in Datei "Ziel"
2. Ist "X" wahr füge nur in die leeren felder ein
3.ist "X" falsch füge alles in die nächste komplett leere zeile ein

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code
13.07.2020 16:28:38
onur
"Ich hoffe das ist verständlich." - Absolut nicht.
Ausserdem bringen Codeschnipsel gar nix.
Am besten postest du die Dateri.
AW: VBA Code
13.07.2020 17:15:05
Hris
Wenn in die Datenbank zwei unterschiedliche Datensätze über meinen Code eingefügt werden und in der reihe über dem neuen Datensatz ist ein Feld frei geblieben, dann füllt er diese mit dem Wert der in die Reihe unter der Lücke gehört auf.
Ich hoffe es ist jetzt etwas klarer? Das mit Blau gelb und leer sollte das veranschaulichen, hätte es mehr erklären müssen.
Am ende hätte ich wie gesagt gerne dass er erst sucht, ob es den kontrollwert schon gibt, und wenn nicht dann alle Daten in einer Reihe in die unterste Freie reihe einfügt.
Anzeige
AW: VBA Code
13.07.2020 17:37:24
ralf_b
juhu, wir sind wieder bei wünsch dir was. Ich hätte gerne eine Schoko-Vanille-Eis. Und ich wünsche mir das Die Hilfesuchenden etwas mehr Eigene Bemühungen zeigen. Das schnöde Copy-Paste haste doch ausm Netz irgendwo hergesucht.
Deine Lösung wird wohl über eine Schleifenkonstruktion realiserbar sein. Aber das sind Basics, die du mit deinem geposteten Code schon hinbekommen solltest. Dort greifst du auf Zellbereiche zu, weist diese einem anderen Zellbereich zu und du ermittelst die letzte belegte Zeile.
Die paar Wertevergleiche sind doch wohl machbar.
AW: VBA Code
13.07.2020 17:54:05
Hris
Hallo @ralf_b
ich beschäftige mich noch nicht sehr Lange mit VBA und habe mich bisher in alles reingefuchst und mithilfe eines dicken excel lehrbuches selbst beigebracht. Nur für die Sachen die ich nun brauche sind die Buchweisheiten begrenzt. Zum Thema eigene Bemühung möchte ich dir Sagen, dass ich bereits seit einer Woche an diesem Problem probiere und mir nun rat von hilfsbereiten menschen suche. Bisher habe ich es nämlich noch nirgendwo so gesehen wie ich es benötige.
Ich hab auch noch nicht ganz verstanden warum mein Code die Daten so verschiebt damit darüberliegende Felder aufgefüllt werden. Und wie ich Excel sage, dass er bereits bestehende datensätze nur ausfüllt und eben nicht in die nächste freie zeile packt habe ich auch noch nicht gesehenund oder hinbekommen selbst zu wurschteln.
Anzeige
AW: VBA Code
13.07.2020 18:36:36
ralf_b
dann schlage in deinem buch etwas über
for next schleifen
if then else abfragen
Bezüge ansprechen mit Range() oder Cells(ZeilenNr, SpaltenNr) nach.
Wie du deine spezielle Lösung findest, hast du ja bereits selbst geschrieben. du hast eine lückenhafte Zeile(Datensatz). Die gehst du Zelle für Zelle Von Spalte 1 bis x durch und Prüfst ob die Zelle Leer ist und schreibst den Wert der darunterliegenden Zelle rein. If IsEmpty(.Cells(zeile, spalte))then .Cells(zeile, spalte) = .Cells(zeile +1, spalte)
soweit verständlich?
AW: VBA Code
13.07.2020 19:17:39
Hris
Jetzt Hab ich es fast. Er fügt nur nicht den Fehlenden Wert ein sondern macht nichts ich hab meine versuchsdatei mal hochgeladen. Zur erklärung ich hätte gerne dass wenn ich den code jetzt ausführe, nur die 4 von Tabelle2 in D1 Tabelle1 kopiert wird und die 1 nicht weil die ist ja schon vorhanden
https://www.herber.de/bbs/user/139022.xlsm
Anzeige
AW: VBA Code
13.07.2020 19:44:47
Hris
Danke schonmal. IsEmpty war ein super Tipp, konnte ihn nur noch nicht richtig einsetzen
AW: VBA Code
15.07.2020 15:09:32
Hris
Hallo @ralf_b
bin jetzt schon weiter gekommen. Ich glaube ich bin der Lösung auch schon nahe gekommen. Das einzige Problem ist, er fügt nun in A1 bis A20 "Rng" ein wenn man das Makro ausführt und ich verstehe nicht wieso...
https://www.herber.de/bbs/user/139074.xlsm
Danke dir schonmal
AW: VBA Code
15.07.2020 15:23:42
Hris
Bin mir auch noch nicht sicher ob das so schon richtig definiert ist. Ich versuche ihm zu sagen, dass er in der Zeile wo er den Wert Rng gefunden hat, nach einer leeren Zelle in der Zeile sucht und dann den Wert der gleichen Spalte in Tabelle 2 kopiert und in der leeren Zelle einfügt.
Ist wahrscheinlich komplett falsch ausgedrückt.
Anzeige
AW: VBA Code
16.07.2020 11:19:39
Hris
Vielen dank. Jetzt funktioniert es perfekt.
Schönen Tag dir noch
danke für die rückmeldung -owT
16.07.2020 16:25:11
ralf_b

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige