Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1472to1476
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

Kopieren/Einfügen via VBA

Kopieren/Einfügen via VBA
06.02.2016 14:44:35
Sascha

Hallo Excel-Pro´s,
ich habe folgendes Problem:
ich habe ein Excelblatt in dem stehen in Spalte B bestimmte Aussagen und in Spalte A manchmal der Buchstabe X , Das geht alles Ab Zeile 5 los.
Beispiel:
A B
6 x Aussage 1
7 Aussage 2
8 x Aussage 3
9 .....
Jetzt möchte ich alle Aussagen in Spalte B in ein anderes Arbeitsballt ab Zelle B63 untereinander kopieren, jedoch nur die Aussagen, die auch ein x in Spalte a haben.
Problem: Es kann sein, dass noch weitere Aussagen hinzugefügt werden in Spalte B.
Die müssten dann auch mit kopiert werden. Bei den möglichen weiteren Aussagen, würde dann der Bearbeiter immer selber ein x in Spalte A einfügen, damit das Makro es erkennen und mit herüberkopieren würde.
Um meinen Willen zu seigen, habe ich schon mal angefangen zu programmieren, merke jedoch, dass meine VBA-Skills noch ausbaufähig sind:).

Sub Ausschlüsse()
Dim Zeile As Long
Dim Zeilemax As Long
Zeilemax = Worksheets(6).UsedRange.Rows.Count
For Zeile = 6 To Zeilemax
With Range("B" & Zeile)
If Range("B").Value <> "" And Range("A").Value <> "" Then Range("B").Select
End With
Next Zeile
End Sub

Daher baue ich auf euch:)
Vielleicht kann mir jemand helfen ?
Vielen Dank im Voraus
Gruß, Sascha

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren/Einfügen via VBA
06.02.2016 15:09:35
Oberschlumpf
Hi Sascha
Zeig doch mal per Upload eine Bsp-Datei mit Bsp-Daten.
Deine Beshcreibungen widersprechen sich teilweise:
Zitatauszüge:

"Das geht alles Ab Zeile 5 los.
...
Beispiel:
A B
6 x Aussage 1
...
For Zeile = 6 To Zeilemax"

Wenn es ab Zeile 5 losgeht, wieso 1. Bsp-Zeile = 6, wieso beginnt For/Next erst bei 6?
Ciao erst mal
Thorsten

AW: Kopieren/Einfügen via VBA
06.02.2016 15:43:18
Sascha
Ah sorry, meinte natürliche Zeile 6:).

AW: Kopieren/Einfügen via VBA
06.02.2016 15:56:26
Piet
hallo
Sub Ausschlüsse()
Dim Ws6 As Object    'Tabelle in der die zu kopierende Werte stehen
Dim z As Long        'z= Zeilenzaehler (ab "B63") zum lückenlosen kopieren
Dim Zeile As Long
Dim Zeilemax As Long
Set Ws6 = Worksheets(6)  'verhindert Makro Fehler !!
Zeilemax = Worksheets(6).UsedRange.Rows.Count
For Zeile = 6 To Zeilemax
'Tabellen Name in die kopiert werden soll selbst einfügen   (xxx)
With Worksheet("xxxxx").Range("B63")
'hier ist Cells besser geieignet wie Range
If Ws6.Cells(, Zeile, "B") <> "" And Ws6.Cells(Zeile, "A") <> "" Then
'hiermit werden nur Werte kopiert  (keine Formate)
.Cells(z, "B") = Ws6.Cells(, Zeile, "B")
z = z + 1    'naechste Zeile in Ziel-Tabellle(xxx)
End If
End With
Next Zeile
End Sub

Programm Erklärung: (Warnung für Anfänger)
Select bitte vergessen, 90% aller Funktionen kommen ohne Range.Select aus.
If Range("B").Value <> "" And Range("A").Value <> "" Then Range("B").Select
In dieser Zeile fehlt die Zeilenangabe hinter Range("B"), das funktioniert so nicht
Ein zweiter beliebter Fehler ist, das zum kopieren Worksheet(6) aktiv sein muss.
Ist ein anderes Blatt selektiert kopiert VBA alle Werte aus dem jetzt aktiven Blatt
Deshalb habe ich die Set Anweisung eingefügt, vor Range "Ws6.Range" gesetzt
Am Ende steht Range("B"), bedeutet im Klartext, hier wird ins -eigene Blatt- kopiert.
D.h. ab Zeile 63 werden alle Werte in Spalte B mit dem Wert aus Zeile 6 überschrieben!
Um in ein anderes Tabellenblatt zu kopieren muss ich das -Blatt Namentlich benennen-!
siehe With Worksheet("xxxxx").Range("B63") Hier muss "xxx" noch ersetzt werden
Bei diesem Programm werden nur die Werte kopiert, ohne Schriftformat und Schriftfarbe
Nach dem kopieren wird der Zeilenzähler z um 1 erhöht. Ohne Zeilenzehler klappt es nicht.
Es sollen Werte ab Range("B6") kopiert werden nach Range("B63"), und zwar fortlaufend
Weil man nicht weiss wo in Spalte A ein "X" steht kann man nicht Zeile zu Zeile kopieren.
Ich denke es hift ein wenig VBA besser zu verstehen Der PC befolgt ja nur seinee Befehle.
Wird ein Programm falsch ausgeführt liegt der Fehler meistens beim Programmierer.
mfg Piet

Anzeige
AW: Kopieren/Einfügen via VBA
06.02.2016 16:27:38
Sascha
Hallo Piet,
vielen Dank für deine Hilfe und deine ausfürhliche Erklärung.
Habe den VBA Code mal 1 zu 1 übernommen und nur das entsprechende worksheet angepasst.
ich bekomme immer die Meldung: "Falsche Anzahl an Argument oder ungültige Zuweisung einer Eigenschaft"
wenn ich Debugge, kommt die Meldung immer beim Schritt:
If Ws6.Cells(, Zeile, "B") <> "" And Ws6.Cells(Zeile, "A") <> "" Then
Hast du noch eine Erklärung?
Gruß
Sascha

...siehste...und wegen solcher...
06.02.2016 16:55:55
Oberschlumpf
...oder anderen für dich nicht erklärbaren Fehler...
Hi Sascha
...bat ich dich um eine Bsp-Datei per Upload.
Warum zeigst du uns die nich?
Ich bin raus...
Ciao
Thorsten

Anzeige
AW: ...siehste...und wegen solcher...
06.02.2016 17:31:40
Sascha
Sorry Thorsten,
habe ich etwas verdaddelt. Ich hatte eigentlich eine vorbereitet. Danke trotzdem nochmal für dein Mühe.
Hier die Beispieldatei
https://www.herber.de/bbs/user/103329.xlsx

Sorry...
06.02.2016 23:44:54
Oberschlumpf
Hi Sascha
Entschuldige bitte, dass ich so ungehalten reagierte.
Ich bin hier schon seit ganz vielen Jahren...zuerst Excel-Lerner...später Antwortender.
Und immer wieder kommt es vor, dass die Ratsuchenden einfach nur ihre Fragen stellen, dabei aber sehr, sehr oft vergessen, dass die Antworter keine Glaskugeln haben und somit nicht wissen können, wie die problem-Datei des Fragenden aussieht, weil der Fragende darüber sehr oft keine bis fast keine Infos preisgibt.
Dabei vergesse ich, dass ich ja selbst mal ein "Frager" war, und ganz bestimmt auch oft nur "halbe Wahrheiten" beschrieben habe.
Genau so wie ich damals meint auch heute ihr es ganz bestimmt nicht böse.
Ihr habt nur ein Problem + möchtet es mit unserer Hilfe gelöst bekommen.
Na ja, ich versuche mal, mich in Geduld zu üben....nich gerad eine meiner Stärken.
Ciao
Thorsten

Anzeige
wenn Du raus bist warum offen, owT
06.02.2016 17:33:20

damit keiner fragt:"wieso nich offen" ^^..owT
06.02.2016 23:38:05
Oberschlumpf

AW: In Ws6.Cells(, Zeile, "B") ist das 1.Komma zuviel!
06.02.2016 19:28:48
Sascha
hallo Luc,
vielen Dank für den Hinweis. Jetzt funktioniert es in der Tat.
Vielen Dank auch an Piet für den Makro. Recht herzlichen Dank.
Schönen Samstag Abend noch :)
Gruß
Sascha

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige