Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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 in das letzte Tabellenblatt

kopieren in das letzte Tabellenblatt
Marco
Hallo,
ich habe eine Arbeitsmappe mit vielen Tabellenblättern (Name des jeweiligen Tabellenblattes ist der Vor und Nachname mit Leerzeichen dazwischen). Das letzte Tabellenblatt (ganz rechts) heißt "Übersicht".
Nun meine Bitte; besteht die Möglichkeit, dass man in jedem Tabellenblatt nachschaut, ob in der Spalte A (ab der 5 Zeile) ein X drinsteht (also A5, A6, A7 usw. bis ca. A1500. Wenn ein X drinsteht soll jeweils die gesamte Zeile (wenn möglich mit Fromatierungen) in das Tabellenblatt "Übersicht" kopiert werden. Hier sollen dann ab Zeile 5 alle gefundenen Zeilen untereinander stehen.
Erschwerend kommt hinzu, dass immer wieder Tabellenblätter eingefügt werden und ich jetzt noch nicht weiß, wie diese heißen. Das letzt heßt aber immer Übersicht.
Tausend Dank für die Hilfe schon im Voraus!!!
Viele Grüße
Marco
AW: kopieren in das letzte Tabellenblatt
14.10.2009 20:08:01
Christian
Hallo,
so zB.
Gruß
Christian

Option Explicit
Sub Overview()
Dim wks As Worksheet
Dim i&, k&
k = 4
With Sheets("Übersicht")
.Rows(5).Resize(.Rows.Count - 4).Delete
For Each wks In ThisWorkbook.Worksheets
If wks.Name  "Übersicht" Then
For i = 5 To wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
If wks.Cells(i, 1) = "X" Then
k = k + 1
wks.Rows(i).Copy .Cells(k, 1)
End If
Next
End If
Next
End With
End Sub

AW: kopieren in das letzte Tabellenblatt
15.10.2009 20:44:42
Marco
Hallo Christian,
vielen Dank für Deinen Vorschlag, aber leider funktioniert es nicht ... es passiert gar nichts.
Da der Vorschlag von Sepp schon sehr nahe kommt, kannst Du vielleicht helfen eine Lösung hinsichtlich der Umwandlung der Formeln in Werte beim kopieren der Zeile zu finden?
Vielen Dank und viele Grüße
Marco
Anzeige
AW: kopieren in das letzte Tabellenblatt
14.10.2009 20:24:30
Josef
Hallo Marco,
probier mal.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Uebersicht()
  Dim objSh As Worksheet, objTarget As Worksheet
  Dim rng As Range, lngRow As Long
  Dim strFirst As String
  
  Set objTarget = Sheets("Übersicht")
  
  With objTarget
    .Range("A5:A" & .Rows.Count).EntireRow.Clear
    lngRow = 5
    For Each objSh In ThisWorkbook.Worksheets
      If Not objSh Is objTarget Then
        strFirst = ""
        Set rng = objSh.Range("A:A").Find(What:="X", LookIn:=xlValues, _
          LookAt:=xlWhole, MatchCase:=False, SearchDirection:=xlNext, After:=objSh.Range("A5"))
        
        If Not rng Is Nothing Then
          strFirst = rng.Address
          Do
            rng.EntireRow.Copy .Cells(lngRow, 1)
            lngRow = lngRow + 1
            Set rng = objSh.Range("A:A").FindNext(rng)
          Loop While Not rng Is Nothing And strFirst <> rng.Address
        End If
      End If
    Next
  End With
  
  Set rng = Nothing
  Set objSh = Nothing
  Set objTarget = Nothing
End Sub

Gruß Sepp

Anzeige
AW: kopieren in das letzte Tabellenblatt
15.10.2009 20:33:20
Marco
Vielen Dank Sepp,
aber ein kleines Problem gibt es noch :-)
Ich hatte vergessen, dass in den jeweiligen Zeilen, die kopiert werden sollen auch Formeln enthalten. Besteht die Möglichkeit die Formatierung beim kopieren zu erhalten und gleichzeitig die Formeln durch die jeweiligen Werte zu ersetzen?
Das mit den Werten ist aber wichtiger, als das Format ... dafür kann ich auch den Pinsel nehmen.
Vielen Dank für Deine Bemühungen und viele Grüße
Marco
AW: kopieren in das letzte Tabellenblatt
15.10.2009 20:38:06
F1
Do
rng.EntireRow.Copy .Cells(lngRow, 1)
.Cells(lngRow, 1).Value=.Cells(lngRow, 1).Value
lngRow = lngRow + 1
Set rng = objSh.Range("A:A").FindNext(rng)
Loop While Not rng Is Nothing And strFirst rng.Address
Anzeige
AW: kopieren in das letzte Tabellenblatt
15.10.2009 20:43:30
Marco
Das ging ja super schnell! Aber leider stehen die Formeln immer noch drin. Hast Du noch eine Alternative?
Viele Grüße
Marco
AW: kopieren in das letzte Tabellenblatt
15.10.2009 20:47:26
Josef
Hallo Marco,
kein Problem.
Sub Uebersicht()
  Dim objSh As Worksheet, objTarget As Worksheet
  Dim rng As Range, lngRow As Long
  Dim strFirst As String
  
  Set objTarget = Sheets("Übersicht")
  
  With objTarget
    .Range("A5:A" & .Rows.Count).EntireRow.Clear
    lngRow = 5
    For Each objSh In ThisWorkbook.Worksheets
      If Not objSh Is objTarget Then
        strFirst = ""
        Set rng = objSh.Range("A:A").Find(What:="X", LookIn:=xlValues, _
          LookAt:=xlWhole, MatchCase:=False, SearchDirection:=xlNext, After:=objSh.Range("A5"))
        
        If Not rng Is Nothing Then
          strFirst = rng.Address
          Do
            rng.EntireRow.Copy
            .Cells(lngRow, 1).PasteSpecial xlValues
            .Cells(lngRow, 1).PasteSpecial xlFormats
            lngRow = lngRow + 1
            Set rng = objSh.Range("A:A").FindNext(rng)
          Loop While Not rng Is Nothing And strFirst <> rng.Address
        End If
      End If
    Next
  End With
  Application.CutCopyMode = False
  Set rng = Nothing
  Set objSh = Nothing
  Set objTarget = Nothing
End Sub

Gruß Sepp

Anzeige
AW: kopieren in das letzte Tabellenblatt
15.10.2009 20:50:56
Marco
Du bist ein Held! Vielen Dank. Darf man fragen, ob Du das beruflich machst?
Viele Grüße aus Berlin
Marco
Bin nur Amateur
15.10.2009 21:06:02
Josef
Hallo Marco,
freud mich das ich dir helfen konnte.
Excel/VBA sind für mich nur ein Hobby.
Gruß Sepp

AW: Bin nur Amateur
16.10.2009 10:12:56
Marco
Schönes Hobby :-)
Weißt Du, ob es eine Möglichkeit gibt, aus einem Kontakt (welcher in einem öffentlichen Ordner auf einem Exchange-Server liegt) anhand einer eindeutigen Nummer (welche im Kontaktformular definiert wurde) Daten in Excel zu importieren.
Wäre schön, wenn man eine Kundennummer eingibt und schwups stehen die Daten, welche man aus dem Kontakt braucht da.
Hast Du Dich mit sowas schon mal beschäftigt? Ich finde es echt komisch, dass Excel und Outlook (Exchange) nicht richtig miteinander können.
Vielen Dank noch mal für Deine Hilfe und ich wünsche ein schönes Wochenende.
Marco
Anzeige
AW: Bin nur Amateur
16.10.2009 10:26:53
Josef
Hallo Marco,
schau mal hier, vielleicht wirst du fündig. Rainer's Officewelt
Gruß Sepp

AW: Bin nur Amateur
16.10.2009 10:31:05
Marco
puuh ... habe ich mal als Favorit abgespeichert :-)
Danke und bis bald
Gruß Marco

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige