1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Mehrere Tabellenblätter zu einer machen Excel 2003, geht das?

Discussion in 'Office-Programme' started by elipo, Oct 29, 2009.

Thread Status:
Not open for further replies.
  1. elipo

    elipo Byte

    Hallo zusammen,

    wie schon der titel sagt, möchte ich gerne mehrere tabellenblätter zu einem tabellenblatt "umwandeln"

    hintergrund ist der. ich habe eine pdf datei und habe diese mit dem programm PDF to EXCEL 22 in eine xls datei umgewandelt. da die pdf datei über 400 seiten hat, und diese einzelnen seite jeweils in einzelne tabellenblätter eingefügt worden sind, wird das ganz schön lange dauern jeweils eine seite zu kopieren und dann in das erste tabellenblatt einzufügen.

    gibt es eine funktion oder einen trick wie ich die tabellenblätter zu einem umwandeln kann?

    oder kennt ihr evtl ein programm das free- oder shareware ist und mir pdf zu xls umwandelt, ohne das jede einzelne seite in ein neues tabellenblatt hinzugefügt wird?

    ich hoffe ihr habt ein paar tipps.

    danke (:
     
  2. Beverly

    Beverly Halbes Megabyte

    Hi,

    das kannst du mit VBA lösen:
    Code:
    Sub Kopieren()
        Dim wsTabelle As Worksheet
        Dim loLetzteActive As Long
        Dim loLetzte As Long
        Dim inLetzte As Integer
        loLetzteActive = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
        For Each wsTabelle In Worksheets
            With wsTabelle
                If .Name <> ActiveSheet.Name Then
                    loLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
                    inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
                    .Range(.Cells(1, 1), .Cells(loLetzte, inLetzte)).Copy ActiveSheet.Cells(loLetzteActive, 1)
                    loLetzteActive = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
                End If
            End With
        Next wsTabelle
    End Sub
    
     
  3. elipo

    elipo Byte

    leider kann ich grad überhaupt nix mit den informationen von oben anfangen.

    VBA?

    bitte etwas näher erklären.. ich bin schon dabei die tabellenblätter von hand zu kopieren.. eine menge arbeit.
     
  4. Beverly

    Beverly Halbes Megabyte

    Hi,

    und genau das sollte dir der VBA-Code abnehmen. Mit Alt+F11 gelangst du in die VBA-Umgebung. Gehe in der dortigen Symbolleiste auf Einfügen -> Modul und kopiere den Code in das rechte (obere) Codefenster und schließe die VBA-Umgebung. Nun kannst du im Tabellenblatt über Extras -> Makro -> Makros "Kopieren" auswählen und ausführen. Dann werden die Daten aus allen Tabellenblättern in das gerade aktive kopiert ("zusammengeführt"). Wenn du nun schon einige von Hand kopiert hast, müsstest du diese Daten wieder löschen bzw. die Ausgangsdatei verwenden (speichere die bereits bearbeitete zur Sicherheit ab).
     
  5. elipo

    elipo Byte

    wow vielen dank!
    hat super geklappt (:

    hast du das selbst geschrieben als du meine frage gelesen hast?
    oder hast du das schon vorgefertigt gefunden?
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi,

    das sind ganz normale VBA-Befehle, die man natürlich kennen und von denen man wissen muss, wie sie anzuwenden sind und was sie bewirken :). Den Code habe ich für deinen speziellen Fall geschrieben, als ich deine Frage gelesen habe, er ist also nichts Vorgefertigtes.
     
  7. elipo

    elipo Byte

    alles klar.

    großen respekt :bet:

    vielen dank nochmal
     
  8. methos125

    methos125 ROM

    Ich hoffe das Ihr noch aktiv seid!
    Unzwar brauch ich genau den Code. Nur sollen bei mir nicht alle Tabellenblätter in eins überführt werden, sondern nur bestimmte. Wenn ich 4 Blätter mit folgenden Namen habe: TB1, TB2, TB3 u. Test. Das er dann nur tb1-3 nimmt.
    Wenn mir da jemand so schnell es geht helfen kann wäre super super!!!!
     
  9. Beverly

    Beverly Halbes Megabyte

    ändere diesen Teil des Codes, dann sollte es eigentlich wie gewünscht funktionieren:

    Code:
            With wsTabelle
                Select Case .Name
                   Case "TB1", "TB2", "TB3"
                      loLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
                      inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
                      .Range(.Cells(1, 1), .Cells(loLetzte, inLetzte)).Copy ActiveSheet.Cells(loLetzteActive, 1)
                      loLetzteActive = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
                End Select
            End With
    
     
  10. methos125

    methos125 ROM

    Vielen vielen Dank!!!
    Du hast mir sehr weiter geholfen!!!

    Und vor allem so schnell.
     
Thread Status:
Not open for further replies.

Share This Page