Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
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 Zeile zum einfügen abhängig vom Wert

VBA Zeile zum einfügen abhängig vom Wert
11.08.2022 10:05:39
David
Liebe Excel Profis
Mit meinem bisherigen Code wurden Daten von einem Workbook ins andere kopiert und bei A1 eingefügt, um dort verarbeitet zu werden. Nun würde ich den Code gerne so umschreiben, dass die Daten nicht immer bei A1 eingefügt werden, sondern jede Zeile einzeln anhand ihres Wertes in der Spalte AQ eingefügt wird. Das bedeutet wenn z.B 7 Zeilen kopiert werden, diese sich beim einfügen automatisch sortieren und in der entsprechenden Zeile eingefügt werden. Beispiel: Wenn in Spalte AQ 1 steht dann in Zeile 1 Wenn in Spalte AQ 6 steht dann in Zeile 6 etc. Wenn also nur die Nummern 1 und 4 vorhanden waren, dann soll auch nur in den Zeilen 1 und 4 etwas eingefügt werden.
Falls ich etwas ungenau formuliert haben sollte, stehe ich jederzeit für Nachfragen zur Verfügung.
Ich danke euch bereits im Voraus für euren selbstlosen Einsatz.
Meinen bisherigen Code für diesen Vorgang habe ich untenstehend angefügt.

Sub SG1Stundenplan()
'   SG1Stundenplan
Sheets("Gruppenplanung").Select
Columns.EntireColumn.Hidden = False
Range("A2").Select
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
ActiveSheet.Range("A2").AutoFilter Field:=19, Criteria1:="SG 1", Operator:=xlAnd
Rows("3:100").Select
Selection.Copy
Workbooks.Open "R:\BINplus\Langenthal\Stammgruppen\Stammgruppe 1\Stammgruppe 1_Unterrichtspläne Test.xlsm"
Worksheets("Stammdaten").Range("A1").PasteSpecial Paste:=xlPasteValues
Workbooks("Stammgruppe 1_Unterrichtspläne Test.xlsm").Close SaveChanges:=True
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeile zum einfügen abhängig vom Wert
11.08.2022 11:35:19
Daniel
Hi
dann musst du jede Zeile einzeln kopieren

dim Zelle as range
Workbooks.Open "R.......xlsm"
for each Zelle in thisworkbook.Sheets("Gruppenplanung").UsedRange.Columns(19)
if Zelle.Value = "SG 1" then
Zelle.EntireRow.copy
Workbooks("Stammgruppe 1_Unterrichtspläne Test.xlsm").Worksheets("Stammdaten").Cells(Zelle.Offset(?AQ? - Zelle.column).value, 1).PasteSpecial xlpastevalues
end if
next
Workbooks("Stammgruppe 1_Unterrichtspläne Test.xlsm").Close true
bitte für ?AQ? die Spaltennummer von Spalte AQ eintragen, ich bin zu faul das rauszusuchen
Gruß Daniel
Anzeige
AW: VBA Zeile zum einfügen abhängig vom Wert
11.08.2022 13:02:43
David
Hi Daniel
Danke dir schon jetzt einmal für deinen betriebenen Aufwand. Das mit den einzelnen Zeilen dachte ich mir schon, war aber nicht imstande, dass so schnell wie du umzusetzen. Nun ist es aber so, dass es mir einen Laufzeitfehler 13 "Typen unverträglich" zurückwirft und folgende Zeile wird gelb markiert
If Zelle.Value = "SG 7" Then
Hast du eine Idee warum? Eigentlich sollte dieser Laufzeitfehler doch lediglich erscheinen, wenn mehrere Zellen mit einem Value verglichen werden. Das sollte ja in einem "For Each" Vorgang nicht der Fall sein. Kannst du helfen? Untenstehend der jetzige Code.
Den Spruch unten fand ich übrigens super;). Die Tabelle hat mir langsam auch zu viele Spalten.
LG David

Sub SG8Stundenplan()
Dim Zelle As Range
Workbooks.Open "R:\BINplus\Langenthal\Stammgruppen\Stammgruppe 7\Stammgruppe 8_Unterrichtspläne Test.xlsm"
For Each Zelle In ThisWorkbook.Sheets("Gruppenplanung").UsedRange.Columns(19)
If Zelle.Value = "SG 7" Then
Zelle.EntireRow.Copy
Workbooks("Stammgruppe 8_Unterrichtspläne Test.xlsm").Worksheets("Stammdaten").Cells(Zelle.Offset(43 - Zelle.Column).Value, 1).PasteSpecial xlPasteValues
End If
Next
Workbooks("Stammgruppe 8_Unterrichtspläne Test.xlsm").Close True
End Sub

Anzeige
AW: VBA Zeile zum einfügen abhängig vom Wert
11.08.2022 14:22:14
Daniel
Hi
den Laufzeitfehler gibts auch, wenn in der Zelle ein Fehlerwert steht, weil VBA mit Fehlerwerten nicht besonders gut umgehen kann.
.Text statt .Value kann hier abhilfe schaffen.
Gruß Daniel
AW: VBA Zeile zum einfügen abhängig vom Wert
12.08.2022 08:57:37
David
Hi Daniel
Nun funktioniert die Texterkennung korrekt. Nur leider passiert gar nichts. Es wird weder etwas markiert noch kopiert noch eingefügt. Der Code beginnt, das andere Workbook wird geöffnet, schliesst sich wieder und der Code ist beendet. Kopiert und eingefügt wird jedoch jetzt nichts mehr. Übersehe ich was? Habe ich einen Fehler gemacht? Falls es besser geht, wenn ich die Dokumente beifüge, kann ich das gerne machen.
Die Idee wäre ja, dass er die Zeilen in den dementsprechend dafür vorgesehenen Reihen einfügt. Also wenn in AQ 7 steht dann in Zeile 7 im neuen Workbook, wenn in AQ 10 steht dann in Zeile 10 im neuen Workbook:).
Guten Morgen und herzliche Grüsse
David
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige