Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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 Tab1 Zeilen kopieren und in Tab2 einfügen

VBA Tab1 Zeilen kopieren und in Tab2 einfügen
24.10.2014 21:12:24
mehmet

Hallo Forum,
ich komme einfach nicht weiter.
Es sollen die Inhalte (Value) von Tab1 N110:U130 in Tab2 Spalte AA..:AN.. (Zeilen in gelb) eingefügt werden.
Es soll also in Tab1 Zelle N110 und Zelle O110 geguckt werden ob Zellen belegt sind.
Wenn beide Zellen belegt, dann soll Tab1 Zeile N110 bis U110 kopiert werden (nur Value) und in Tab2 ab Spalte AA.. bzw. Spalte AB.. (wenn beide Zelle leer) eingefügt werden. Sonst in Tab2 eine Zeile tiefer eingefügt werden (letzte befüllte Zelle von Spalte AA.. und AB..).
Es kann sein, daß einige Zeilen von Tab2 ausgeblendet werden. Die eingefügten Inhalte sollen am Ende zu sehen sein.
Hoffentlich kann man hier eine passende Lösung finden.
Vielen Dank und Gruß
mehmet

Die Datei https://www.herber.de/bbs/user/93354.xls wurde aus Datenschutzgründen gelöscht


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

Betreff
Datum
Anwender
Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
25.10.2014 09:21:33
mehmet
Hallo,
sorry, ich vergaß meine Musterlösung zu zeigen.
Makro läuft, es macht aber nix:
Private Sub t19b_Status()
'              unten anhaengen
'Sheets Tab1   Sheets Tab2
'N110:N130     AA Spalte 27
'O110:O130     AB Spalte 28
'P110:P130     AC Spalte 29
'Q110:Q130     AD Splate 30
'R110:R130     AG Spalte 33
'S110:S130     AJ Spalte 36
'T110:T130     AK Spalte 37
'U110:U130     AN Spalte 40
Sheets("Tab2").Select: Range("AB19").Select
Dim xx As Variant
xx = ActiveSheet.Cells(Rows.Count, 27).End(xlUp).Row + 1
For Each xx In Selection
If xx.EntireRow.Hidden = True Then
'110 muss noch laufvariable sein
Sheets("Tab2").Cells(xx, 27).Value = Sheets("Tab1").Cells(110, 14).Value
Sheets("Tab2").Cells(xx, 28).Value = Sheets("Tab1").Cells(110, 15).Value
Sheets("Tab2").Cells(xx, 29).Value = Sheets("Tab1").Cells(110, 16).Value
Sheets("Tab2").Cells(xx, 30).Value = Sheets("Tab1").Cells(110, 17).Value
Sheets("Tab2").Cells(xx, 33).Value = Sheets("Tab1").Cells(110, 18).Value
Sheets("Tab2").Cells(xx, 36).Value = Sheets("Tab1").Cells(110, 19).Value
Sheets("Tab2").Cells(xx, 37).Value = Sheets("Tab1").Cells(110, 20).Value
Sheets("Tab2").Cells(xx, 40).Value = Sheets("Tab1").Cells(110, 21).Value
End If
Next xx
End Sub
Gruss
mehmet

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
25.10.2014 16:01:18
Gerold
Hallo mehmet
Dein Tread war nicht mehr auf offen gestellt
Aktiviere das Kontrollkästchen, wenn die Frage mit diesem Beitrag nicht beantwortet wurde und der Thread weiter bei den offenen Fragen angezeigt werden soll
Als Anreiz.
Probier mal so etwas

Private Sub t19b_Status()
Dim xx As Variant, Zelle As Range, Wks1 As Worksheet, Wks2 As Worksheet, i, j
Set Wks1 = Tabelle1
Set Wks2 = Tabelle2
Wks1.Select
xx = Wks2.Cells(Rows.Count, 27).End(xlUp).Row + 1
For Each Zelle In Wks1.Range("N110:N130")
j = 14
If Wks2.Cells(xx, 1).EntireRow.Hidden = True Then
For i = 27 To 40
Select Case i
Case Is = 27, 28, 29, 30, 33, 36, 37, 40
Wks2.Cells(xx, i).Value = Wks1.Cells(Zelle.Row, j).Value
j = j + 1
End Select
Next
xx = xx + 1
End If
Next
Set Wks1 = Nothing
Set Wks2 = Nothing
End Sub
Gruß Gerold

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
25.10.2014 17:41:52
mehmet
Hallo Gerold,
vielen Dank für deine Hilfe.
Ich hatte mich schon gefragt, was ich falsch gemacht habe weil keiner mir geantwortet hatte.
Ich habe bereits auch - lang sehr langenden Versuchen, folgendes Makro entwickeln können:
Private Sub t19b_Status()
Dim i As Integer
For i = 110 To 130 'suche Spalten Tab1 N:U
If Sheets("Tab1").Cells(i, 14) <> "" And Sheets("Tab1").Cells(i, 15) <> "" Then    'Zeile 110
a = Sheets("Tab2").Cells(Rows.Count, 27).End(xlUp).Row + 1 '27 Spalte AA
Sheets("Tab2").Cells(a, 27).Value = Sheets("Tab1").Cells(i, 14).Value
Sheets("Tab2").Cells(a, 28).Value = Sheets("Tab1").Cells(i, 15).Value
Sheets("Tab2").Cells(a, 29).Value = Sheets("Tab1").Cells(i, 16).Value
Sheets("Tab2").Cells(a, 30).Value = Sheets("Tab1").Cells(i, 17).Value
Sheets("Tab2").Cells(a, 33).Value = Sheets("Tab1").Cells(i, 18).Value
Sheets("Tab2").Cells(a, 36).Value = Sheets("Tab1").Cells(i, 19).Value
Sheets("Tab2").Cells(a, 37).Value = Sheets("Tab1").Cells(i, 20).Value
Sheets("Tab2").Cells(a, 40).Value = Sheets("Tab1").Cells(i, 21).Value
End If
Next i
End Sub

Macht soweit auch was es soll.
Was noch nicht ganz funktioniert:
wenn Zeilen ausgeblendet sind, werden diese nicht angezeigt,
weil diese auch in die ausgeblendete Zeilen in Tab2 rein laufen.
Wenn du nochmal bitte rüber schauen könntest.
Mit ausblenden kenne ich mich überhaupt nicht aus.
Vielen Dank nochmal
Gruss
mehmet

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
26.10.2014 14:08:29
Gerold
Hallo mehmet
Ich würde den Tabellen Codenamen nehmen und nicht Sheets("Tab1")
Der kann nämlich in der Tabelle nicht verändert werden
Den Tabellennamen kann jeder ändern und dann läuft dein Makro nicht mehr
Tabelle2.Rows(1).EntireRow.Hidden = True 'So wird z.b. nur die Zeile 1 ausgeblendet
Tabelle2.Rows(1).EntireRow.Hidden = False 'So wird z.b. nur die Zeile 1 eingeblendet
Tabelle2.Rows("1:10").EntireRow.Hidden = True 'so werden z.b. die Zeilen 1 - 10 ausgeblendet
Tabelle2.Columns(1).EntireColumn.Hidden = True 'So wird z.b. die Spalte 1 ausgeblendet
Tabelle2.Columns(1).EntireColumn.Hidden = False 'So wird z.b. die Spalte 1 eingeblendet

Private Sub t19b_Status()
Dim i As Integer, a As Long
For i = 110 To 130                                              'Suchen in den Zeilen 110 - 130
If Tabelle1.Cells(i, 14) <> "" And Tabelle1.Cells(i, 15) <> "" Then
With Tabelle2
a = .Cells(Rows.Count, 27).End(xlUp).Row + 1          '27 Spalte AA
.Cells(a, 27).Value = Tabelle1.Cells(i, 14).Value   'Kopieren der Spalten N:U
.Cells(a, 28).Value = Tabelle1.Cells(i, 15).Value   'nach Tabelle2 Spalten 27 - 40
.Cells(a, 29).Value = Tabelle1.Cells(i, 16).Value
.Cells(a, 30).Value = Tabelle1.Cells(i, 17).Value
.Cells(a, 33).Value = Tabelle1.Cells(i, 18).Value
.Cells(a, 36).Value = Tabelle1.Cells(i, 19).Value
.Cells(a, 37).Value = Tabelle1.Cells(i, 20).Value
.Cells(a, 40).Value = Tabelle1.Cells(i, 21).Value
End With
End If
Next i
End Sub
Gruß Gerold

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
26.10.2014 18:05:33
mehmet
Hallo Gerold,
vielen Dank fuer dein Tip. Werd ich machen.
Ich habe versucht dein Makro mit vielen Moeglichkeiten anzupassen bzgl. Hide:
Hier ein Beispiel:
Private Sub t19b_Status()
Dim i As Integer, a As Long
b = Tabelle2.Cells(Rows.Count, 27).End(xlUp).Row '27 Spalte AA
For i = 110 To 130                                              'Suchen in den Zeilen 110 - 130
For b = 99 To 1
If Tabelle1.Cells(i, 14) <> "" And Tabelle1.Cells(i, 15) <> "" Then
If Tabelle2.Rows(b).EntireRow.Hidden = True Then 'So wird z.b. nur die Zeile 1  _
ausgeblendet
b = b + 1
With Tabelle2
a = .Cells(Rows.Count, 27).End(xlUp).Row + 1          '27 Spalte AA
.Cells(a, 27).Value = Tabelle1.Cells(i, 14).Value 'Kopieren der Spalten N:U
.Cells(a, 28).Value = Tabelle1.Cells(i, 15).Value   'nach Tabelle2 Spalten 27 - 40
.Cells(a, 29).Value = Tabelle1.Cells(i, 16).Value
.Cells(a, 30).Value = Tabelle1.Cells(i, 17).Value
.Cells(a, 33).Value = Tabelle1.Cells(i, 18).Value
.Cells(a, 36).Value = Tabelle1.Cells(i, 19).Value
.Cells(a, 37).Value = Tabelle1.Cells(i, 20).Value
.Cells(a, 40).Value = Tabelle1.Cells(i, 21).Value
End With
Else
With Tabelle2
a = .Cells(Rows.Count, 27).End(xlUp).Row + 1          '27 Spalte AA
.Cells(a, 27).Value = Tabelle1.Cells(i, 14).Value 'Kopieren der Spalten N:U
.Cells(a, 28).Value = Tabelle1.Cells(i, 15).Value   'nach Tabelle2 Spalten 27 - 40
.Cells(a, 29).Value = Tabelle1.Cells(i, 16).Value
.Cells(a, 30).Value = Tabelle1.Cells(i, 17).Value
.Cells(a, 33).Value = Tabelle1.Cells(i, 18).Value
.Cells(a, 36).Value = Tabelle1.Cells(i, 19).Value
.Cells(a, 37).Value = Tabelle1.Cells(i, 20).Value
.Cells(a, 40).Value = Tabelle1.Cells(i, 21).Value
End With
End If
End If
Next b
Next i
End Sub

Das Makro macht einfach nicht was ich will 8-)
Egal ob ich in Tab2 Zeilen 9-20 ausblende oder alle Zeilen einblende.
Hab ich die "b" Variable falls gemacht oder die "hide" abfrage falsch angesetzt?
https://www.herber.de/bbs/user/93382.xls
Viele Gruesse
mehmet

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
26.10.2014 21:14:45
Gerold
Hallo mehmet
Wann sind denn welche Zeilen ausgeblendet
und müssen die wieder ausgeblendet werden?

Private Sub t19b_Status()
Dim i As Integer, a As Long
'Würde erst mal alle Zeilen einblenden damit die letzte Zeile richtig erkannt wird
Tabelle2.Cells.EntireRow.Hidden = False
'Daten Kopieren
For i = 110 To 130
If Tabelle1.Cells(i, 14) <> "" And Tabelle1.Cells(i, 15) <> "" Then
With Tabelle2
a = .Cells(Rows.Count, 27).End(xlUp).Row + 1        '27 Spalte AA
.Cells(a, 27).Value = Tabelle1.Cells(i, 14).Value   'Kopieren der Spalten N:U
.Cells(a, 28).Value = Tabelle1.Cells(i, 15).Value   'nach Tabelle2 Spalten 27 - 40
.Cells(a, 29).Value = Tabelle1.Cells(i, 16).Value
.Cells(a, 30).Value = Tabelle1.Cells(i, 17).Value
.Cells(a, 33).Value = Tabelle1.Cells(i, 18).Value
.Cells(a, 36).Value = Tabelle1.Cells(i, 19).Value
.Cells(a, 37).Value = Tabelle1.Cells(i, 20).Value
.Cells(a, 40).Value = Tabelle1.Cells(i, 21).Value
End With
End If
Next i
'Zeilen ausblenden zB.Zeilen 5-11
For a = 5 To 11
Tabelle2.Rows(a).EntireRow.Hidden = True
Next
End Sub
Gruß Gerold

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
26.10.2014 22:23:51
mehmet
Hallo Gerold,
vielen Dank. Dein Makro ist kurzer.
Die ausgeblendete Zeilen sollen ausgeblendet bleiden.
Es sei denn, der User blendet diese wieder ein und blendet andere Zeilen aus.
Das kopierte soll in Tab2 unten eingefuegt werden auch wenn leere Zeilen mit ausgeblendet sind.
Vielen and und Gruss
mehmet

AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
27.10.2014 00:49:06
Gerold
Hallo
Hier noch mal ein Vorschlag von mir

Private Sub t19b_Status()
Dim i As Integer, a As Long, Zähler As Long
'Würde erst mal alle Zeile einblenden damit die letzte Zeile richtig erkannt wird
Tabelle2.Cells.EntireRow.Hidden = False
Zähler = 3
'Daten Kopieren
For i = 110 To 130
If Tabelle1.Cells(i, 14) <> "" And Tabelle1.Cells(i, 15) <> "" Then
With Tabelle2
a = .Cells(Rows.Count, 27).End(xlUp).Row + 1        '27 Spalte AA
.Cells(a, 27).Value = Tabelle1.Cells(i, 14).Value   'Kopieren der Spalten N:U
.Cells(a, 28).Value = Tabelle1.Cells(i, 15).Value   'nach Tabelle2 Spalten 27 - 40
.Cells(a, 29).Value = Tabelle1.Cells(i, 16).Value
.Cells(a, 30).Value = Tabelle1.Cells(i, 17).Value
.Cells(a, 33).Value = Tabelle1.Cells(i, 18).Value
.Cells(a, 36).Value = Tabelle1.Cells(i, 19).Value
.Cells(a, 37).Value = Tabelle1.Cells(i, 20).Value
.Cells(a, 40).Value = Tabelle1.Cells(i, 21).Value
Zähler = Zähler + 1
End With
End If
Next i
'Zeilen Ausblenden
'3 alte + die neuen sind eingeblendet
Tabelle2.Range("A2:A" & (a - (Zähler))).EntireRow.Hidden = True
End Sub
Gruß Gerold
Rückmeldung wäre nett.

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
27.10.2014 02:06:25
mehmet
Hallo Gerold,
die Lösung sieht schon viel besser aus.
Das mit den "alles einblenden" ist eine gute Idee.
Dadurch läuft das Makro sicher und flüssig.
Das Problem ist das Zurück ausblenden im Makro.
Im Makro sind die ausgeblendete Zeilen vorbestimmt.
Diese werden allerdings ständig vom User verändert.
Mal ist es Zeile 9:15, mal 3:8, mal 5:12 usw.
Und immer zwischendurch wird eingelesen und Zeile 6:18 z.B. ausgeblendet usw.
Kann man es so machen, dass das Makro die vorher ausblendete Zeilen sich merkt.
Viele Grüße
mehmet

AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
27.10.2014 02:29:41
mehmet
Hallo Gerold,
ich glaub ich könnte es mir so vorstellen:
Zeilen in Tab2 die ausgeblenden sind, schreibe ein "x" in Nebenspalte (Merker).
Jetzt alle Zeilen einblenden.
Kopierte Sachen unten anhängen.
Jetzt alle Zeilen wieder ausblenden wo x steht in Nebenspalte (Merker).
Die geschriebenen "x" wieder entfernen.
So könnte es funktionieren, leider fehlt mir hier das komplexe VBA wissen hierzu.
Gruss
mehmet

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
27.10.2014 18:59:56
Gerold
Hallo mehmet
Was meinst du denn hiervon?

Private Sub t19b_Status()
Dim i As Integer, a As Long, ZZähler As Long, ZlAus()
'Einlesen welche Zeile ausgeblendet ist
For ZZähler = 1 To Rows.Count
ReDim Preserve ZlAus(1 To ZZähler)
If Tabelle2.Cells(ZZähler, 27).Value = "" Then Exit For
ZlAus(ZZähler) = Tabelle2.Cells(ZZähler, 1).EntireRow.Hidden
Next
'Würde erst mal alle Zeile einblenden damit die letzte Zeile richtig erkannt wird
Tabelle2.Cells.EntireRow.Hidden = False
'Daten Kopieren
For i = 110 To 130
If Tabelle1.Cells(i, 14) <> "" And Tabelle1.Cells(i, 15) <> "" Then
With Tabelle2
a = .Cells(Rows.Count, 27).End(xlUp).Row + 1        '27 Spalte AA
.Cells(a, 27).Value = Tabelle1.Cells(i, 14).Value   'Kopieren der Spalten N:U
.Cells(a, 28).Value = Tabelle1.Cells(i, 15).Value   'nach Tabelle2 Spalten 27 - 40
.Cells(a, 29).Value = Tabelle1.Cells(i, 16).Value
.Cells(a, 30).Value = Tabelle1.Cells(i, 17).Value
.Cells(a, 33).Value = Tabelle1.Cells(i, 18).Value
.Cells(a, 36).Value = Tabelle1.Cells(i, 19).Value
.Cells(a, 37).Value = Tabelle1.Cells(i, 20).Value
.Cells(a, 40).Value = Tabelle1.Cells(i, 21).Value
End With
End If
Next i
'Oben eingelesene Zeilen wieder ausblenden
For i = 1 To ZZähler
Tabelle2.Cells(i, 1).EntireRow.Hidden = ZlAus(i)
Next
End Sub
Gruß Gerold

Anzeige
AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
27.10.2014 22:40:34
Gerold
Hallo mehmet
Bitte füge im letztren Beispiel von mir
noch die "Application" Zeilen mit ein.

Private Sub t19b_Status()
Dim i As Integer, a As Long, ZZähler As Long, ZlAus()
Application.ScreenUpdating = False                 'Diese Zeile einfügen
Application.Calculation = xlCalculationManual      'Diese Zeile einfügen
'Einlesen welche Zeile ausgeblendet ist
Next
Application.Calculation = xlCalculationAutomatic  'Diese Zeile einfügen
Application.ScreenUpdating = True                 'Diese Zeile einfügen
End Sub
Gruß Gerold
Rückmeldung wäre nett.

AW: VBA Tab1 Zeilen kopieren und in Tab2 einfügen
27.10.2014 23:15:15
mehmet
Hallo Gerold,
vielen vielen Dank. Es macht genau was es soll.
Ich habe es voll ausgetestet und es läuft prima.
Selber hätte ich das Problem nicht lösen können.
Nochmal herzlichen Dank für deine Hilfe und Geduld.
Viele Grüsse
mehmet

429 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige