Office: (Office 2013) Bestimmte Bereiche und Tabellenblätter ex- & importieren

Helfe beim Thema Bestimmte Bereiche und Tabellenblätter ex- & importieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte mir das Arbeiten an einer Exceldatei etwas erleichtern, indem ich Daten in eine CSV-Datei ex- & importiere. Meine Datei besteht... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Jandb1980, 27. Juni 2016.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Jandb1980 Erfahrener User

    Bestimmte Bereiche und Tabellenblätter ex- & importieren


    Hallo,

    ich möchte mir das Arbeiten an einer Exceldatei etwas erleichtern, indem ich Daten in eine CSV-Datei ex- & importiere.

    Meine Datei besteht mitunter aus "Monatstabellenblättern". Daraus möchte ich verschiedene Bereiche ex- & importieren können.

    Die Bereiche (Monatstabellenblätter Jan-Dez) wären folgende:
    C7-M37
    Q7-S37
    U7-U37


    Dazu kämen noch 2 weitere Tabellenblätter & Bereiche:
    Arbeitszeitkonto: F6-F17
    Stammdaten: C2, C6-C8, H8-H9

    Folgenden Anfang hätte ich schon, um alle Tabellebnblätter anzusprechen:
    Code:
    Private Sub CommandButton1_Click()
       Dim arrTabs()
       Dim bytTab As Byte
       arrTabs = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
          For bytTab = 0 To 11
            With Worksheets(arrTabs(bytTab))
    
       End With
       Next bytTab
        End With
       Next Ws
    End Sub
    
    Wie müsste ich den Code ergänzen, damit ich die aufgelisteten Bereiche ex- und importieren kann?
    Schonmal jetzt vielen Dank für eure Hilfe.

    Edit:
    Vielleicht kann man meinen Code irgendwie mit folgendem kombinieren?
    Code:
    Sub Exportiere_Bereich_in_CSV()
        
        Dim bisZeile As Long, zeile As Long
        Dim bisSpalte As Integer, Spalte As Integer
        Dim Trennzeichen As String, ExportBereich As String, Ausgabe As String
        Dim NewFileName
        
        
        Close #1
        NewFileName = Application.GetSaveAsFilename(fileFilter:="CSV Files (*.csv), *.csv")
        
        If NewFileName <> False Then
           Open NewFileName For Output As #1
                   
           ' Hier Trennzeichen eingeben
           Trennzeichen = InputBox("Bitte geben Sie das gewünschte Trennzeichen ein: ", " _
    Trennzeichen", ";")
           If Trennzeichen = "" Then
              'Standard-Trennzeichen Semikolon
              Trennzeichen = ";"
           End If
                            
           'Zu exportierender Bereich
           ExportBereich = InputBox("Bitte den zu exportierenden bereich eingeben: ", "Bereich",  _
    ActiveSheet.UsedRange.Address(False, False))
           If ExportBereich = "" Then
              'Wenn leer, dann benutzten Bereich exportieren
              ExportBereich = ActiveSheet.UsedRange.Address
           End If
           
           bisZeile = ActiveSheet.Range(ExportBereich).Rows.Count + ActiveSheet.Range(ExportBereich) _
    .Row - 1
           bisSpalte = ActiveSheet.Range(ExportBereich).Columns.Count + ActiveSheet.Range( _
    ExportBereich).Column - 1
            
           For zeile = ActiveSheet.Range(ExportBereich).Row To bisZeile
               Ausgabe = ""
               For Spalte = ActiveSheet.Range(ExportBereich).Column To bisSpalte
                   Ausgabe = Ausgabe & ActiveSheet.Cells(zeile, Spalte).Value
                   If Spalte <> bisSpalte Then
                       Ausgabe = Ausgabe & Trennzeichen
                   End If
               Next Spalte
               Print #1, Ausgabe
           Next zeile
                
           Close #1
        
        End If
    
    End
    
     
    Zuletzt bearbeitet: 27. Juni 2016
    Jandb1980, 27. Juni 2016
    #1
  2. Reidamaxia Erfahrener User
    Hallo Jandb1980

    Ja, du kannst die Codeschnipsel zusammenfügen.

    Fertige Lösungen werden hier aber nicht präsentiert. Wiederhole den Code für jedes CSV-File (z.B. jedes deiner Sheets?), ersetze ausserdem ein paar Variablen, da du ansonsten Unmengen an Pop-Ups haben wirst..
     
    Zuletzt bearbeitet: 27. Juni 2016
    Reidamaxia, 27. Juni 2016
    #2
  3. Jandb1980 Erfahrener User
    Das ist sehr hilfreich, wenn man nicht programmieren kann ;)

    Deswegen frage ich doch hier.

    Und warum werden hier keine "fertigen Lösungen" präsentiert? Hier haben mir schon des öfteren Leute super geholfen, und es waren oft Lösungen, die direkt funktionierten, oder wo ich durch kleinere Anpassungen zum gewünschten Ziel kam.

    Die Codeschnipsel habe ich dank Google gefunden und ich wollte hier fragen, ob mir jemand helfen kann, diese Codeschnipsel so zusammenzubasteln, das sie für mich funktionieren. Oder vielleicht ist es ja auch so, das das für mein Vorhaben gänzlich falsch ist und mit anderem Code besser funktioniert?

    DAnke für deine Antwort, aber sie führt für mich aufgrund fehlender Programmierkenntnisse nicht zum Ziel Bestimmte Bereiche und Tabellenblätter ex- & importieren :(
     
    Jandb1980, 27. Juni 2016
    #3
  4. Reidamaxia Erfahrener User

    Bestimmte Bereiche und Tabellenblätter ex- & importieren

    Hi Jandb1980

    Wenn du schon seit einem Jahr fertige Codeteile verlangst, solltest du dir vielleicht überlegen, einen VBA-Kurs zu besuchen..

    Code:
    Sub vorschlag_für_jandb1980()
        'Exportiert monatliche Daten (Tabellen) in ein .csv File
        '@author: Reidamaxia
        '@version: 1.0
        
        Dim sOuput As String
        Dim csvFile
        
        'Eine Schlaufe über jede Tabelle des aktuellen Excel-Sheets
        For Each wSheet In ActiveWorkbook.Sheets
            'In folgender Zeile werden Tabellen eingefügt, die ignoriert werden sollen (bei Bedarf einklammern)
            'If (not wSheet.name = [NAME] or not wSheet.name = [2. NAME]) then
                'Auf Tabelle wechseln
                wSheet.Activate
                
                'Create csv-file
                Close #1
                csvFile = ActiveWorkbook.Path + "\" + wSheet.name + ".csv"
                
                'csv-File als Output-Buffer öffnen
                Open csvFile For Output As #1
    
                'Leeren String "Ausgabe" erstellen, dieser wird danach mit Informationen gefüllt
                sOutput = ""
                
                'Für jede Zeile der Tabelle
                For rowIterator = 7 To 37
                    'C7 -M37
                    For columnIterator = 3 To 13
                        sOutput = sOutput + Cells(rowIterator, columnIterator).Value + ";"
                    Next columnIterator
                    
                    'Q7 -S37
                    For columnIterator = 17 To 19
                        sOutput = sOutput + Cells(rowIterator, columnIterator).Value + ";"
                    Next columnIterator
                    
                    'U7 -U37
                    'Da danach eine neue Datenzeile folgt, wird hier ausserdem ein Zeilenumbruch eingefügt
                    sOutput = sOutput + Cells(rowIterator, 21).Value + ";" + vbNewLine
                Next rowIterator
                    
                'Gesammelte Informationen in den Output-Buffer schreiben
                Print #1, sOutput
                
                'Output-Buffer schliessen
                Close #1
            'Schliesst die ausgeklammerte If-Schleife
            'End if
        Next wSheet
    End Sub
    
    Exportiert jede Tabelle in ein einzelnes .csv File! Versuch einmal, damit zu arbeiten.

    Bei Fragen, melde dich..

    Grüsse, Reida
     
    Reidamaxia, 27. Juni 2016
    #4
  5. Jandb1980 Erfahrener User
    Hallo? Ich verlange garnichts... Ich frage nach Hilfe... Foren sind dafür da, um nach Hilfe zu fragen... Es ist niemand dazu verpflichtet mir zu antworten, wenn er nicht will...

    Ich finde dieses Forum toll, sei es, das man komplette Lösungen, Teillösungen, oder auch Denkanstöße bekommt, ich bin für alles Dankbar, was einem weiterhilft. Aber nochmal, ich verlange garnichts.

    Danke dir jedenfalls für deine Hilfe, ich schaue mir deine Lösung mal genauer an.
     
    Jandb1980, 27. Juni 2016
    #5
  6. Jandb1980 Erfahrener User
    So, ich habe deinen Code mal durchgetestet.

    Ich habe ihn in mein Stammdatenblatt reinkopiert (als Button)
    Beim Ausführen wurde mir dann jedes Tabellenblatt als csv-Datei angelegt. Auch die, die ich angegeben habe, die er auslassen soll, obwohl ich das Auskommentieren dort rausgenommen habe. Dann gab es noch Fehler mit den Variablen rowIterator und columnIterator, diese musste ich mit "CStr" einklammern.

    Lange Rede kurzer Sinn. Der Inhalt der richtig benannten csv-Dateien ist der Inhalt meines Stammdatenblattes. Ich bekomme es nicht hin, das der eigentliche Inhalt aus den Monatsblättern genommen wird.

    Evtl. kannst du dir den Code nochmal anschauen?

    So sieht er zur Zeit aus (hab da ein wenig umgeschrieben mit Hilfe eines Freundes):
    Code:
    Private Sub CommandButton11_Click()
    'Daten exportieren
    'Exportiert monatliche Daten (Tabellen) in ein .csv File
    '@author: Reidamaxia
    '@version: 1.0
        Dim sOuput As String
        Dim csvFile
        Dim arrTabs()
        Dim bytTab As Byte
        arrTabs = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
          For bytTab = 0 To 11
          
            'Auf Tabelle wechseln
            With Worksheets(arrTabs(bytTab))
                .Activate
                
                'Create csv-file
                Close #1
                csvFile = ActiveWorkbook.Path + "\" + arrTabs(bytTab) + ".csv"
                
                'csv-File als Output-Buffer öffnen
                Open csvFile For Output As #1
    
                'Leeren String "Ausgabe" erstellen, dieser wird danach mit Informationen gefüllt
                sOutput = ""
                
                'Für jede Zeile der Tabelle
                For rowIterator = 7 To 37
                    'C7 -M37
                    For columnIterator = 3 To 13
                        sOutput = sOutput + CStr(Cells(rowIterator, columnIterator).Value) + ";"
                    Next columnIterator
                    
                    'Q7 -S37
                    For columnIterator = 17 To 19
                        sOutput = sOutput + CStr(Cells(rowIterator, columnIterator).Value) + ";"
                    Next columnIterator
                    
                    'U7 -U37
                    'Da danach eine neue Datenzeile folgt, wird hier ausserdem ein Zeilenumbruch eingefügt
                    sOutput = sOutput + CStr(Cells(rowIterator, 21).Value) + ";" + vbNewLine
                Next rowIterator
                    
                'Gesammelte Informationen in den Output-Buffer schreiben
                Print #1, sOutput
                
                'Output-Buffer schliessen
                Close #1
    
            End With
        Next bytTab
    End Sub
    
     
    Zuletzt bearbeitet: 29. Juni 2016
    Jandb1980, 29. Juni 2016
    #6
  7. Fred0
    Fred0 Erfahrener User
    Biste dir da so sicher??

    richtig, aber dann sollte man anderst mit denen umgehen, die dir anworten ;)

    sicher??? Bestimmte Bereiche und Tabellenblätter ex- & importieren :cool:
     
    Fred0, 29. Juni 2016
    #7
  8. Jandb1980 Erfahrener User

    Bestimmte Bereiche und Tabellenblätter ex- & importieren

    @Fred Wäre toll, wenn du zu meiner Frage etwas beitragen könntest :)

    Was anderes gehört hier nicht rein.
     
    Jandb1980, 29. Juni 2016
    #8
  9. Fred0
    Fred0 Erfahrener User
    mach ich doch glatt:
    Dann eine Hilfe von mir. Ich würde an Deiner Stelle mich mal mit VBA auseinandersetzen vlt. klappts dann Bestimmte Bereiche und Tabellenblätter ex- & importieren :cool:

    1. https://www.youtube.com/watch?v=J1UwDw-prSc
    2. https://www.youtube.com/watch?v=yOwnA292NTM
    3. http://www.ertls.de/dokumente/vba_excel_1.pdf
    4. http://www.online-excel.de/excel/grusel_vba.php?f=6
    5. https://de.wikibooks.org/wiki/VBA_in_Excel
    6. http://www.fzt.haw-hamburg.de/pers/Abulawi/ExcelmakrosSS05.pdf
    7. https://www.youtube.com/watch?v=J1UwDw-prSc
    8. https://www.youtube.com/watch?v=yOwnA292NTM
    9. usw.
     
    Fred0, 29. Juni 2016
    #9
  10. Michael
    Michael Administrator
    Leute!! Wer keine Hilfestellung anbieten möchte, der ist dazu ja nicht verpflichtet. Der braucht aber auch nicht zu sagen dass er nicht helfen will.
    Bitte keine weiteren Beiträge in diesem Thread, sofern Sie nicht zur Lösung oder Hilfe beitragen. Alle anderen Posts werden kommentarlos entfernt.

    VG
    Michael
     
    Michael, 29. Juni 2016
    #10
  11. Jandb1980 Erfahrener User
    @Michael Danke dir

    @Fred0 Danke dir für deine Links. Ich setze mich schon mit VBA auseinander, ich habe ja auch Codeschnipsel ergoogelt, außerdem habe ich den geposteten Code, vielen Dank dafür an @Reidamaxia, mit einem Kollegen gegengeprüft (eben, weil ich nicht programmieren kann).

    Ich bin nun so weit (habe ich ja auch gepostet), das der Code soweit funktioniert.
    - Dateien (csv) werden nur von den Monatsblättern erstellt

    ABER:
    Daten werden, obwohl ich per Code immer nach und nach die zu bearbeitenden Monatsblätter als aktiv setze, nur aus dem Stammdatenblatt entnommen (Das ist das Tabellenblatt, in dem ich den Code und den Button platziert habe) die Daten der Monatsblätter bleiben unberührt, ich kann mir aber nicht erklären, warum.
     
    Jandb1980, 29. Juni 2016
    #11
  12. silex1
    silex1 Super-Moderator
    @Jandb1980

    ich kann Deine Kommentare nachvollziehen und auch die von Fred0. Denn ich bin der VBA Vollpfosten schlecht hin und benötige dort auch Hilfe (in fertigen Lösungen!), denn ich kann den Code zwar anpassen (Bereiche, Blattname usw.), aber dann ist auch Schluss bei mir.

    Aus meiner Erfahrung kann ich Dir aber sagen, dass eine anonymisierte Bsp-Datei IMMER dem Helfenden hilft, da er diese/Deine Datei nicht nachbauen wird und kann. Denn die Helfer in Foren helfen (meist) kostenfrei und in ihrer Freizeit. Und gerade bei Code ist es wichtig, diesen auch testen zu können.

    Ich würde diesen Beitrag dann mal schließen und Du machst bitte einen neuen Beitrag auf, mit Bsp.-Datei und Codeauszug!
     
    silex1, 29. Juni 2016
    #12
Thema:

Bestimmte Bereiche und Tabellenblätter ex- & importieren

Die Seite wird geladen...
  1. Bestimmte Bereiche und Tabellenblätter ex- & importieren - Similar Threads - Bestimmte Bereiche Tabellenblätter

  2. Per Makro bestimmten Bereich per PDF unter bestimmten Pfad speichern.

    in Microsoft Excel Hilfe
    Per Makro bestimmten Bereich per PDF unter bestimmten Pfad speichern.: Moin Zusammen, ich hoffe Ihr könnt mir helfen, denn ich verzweifle so langsam :( Ich habe bereits hier und im Internet gefühlt vieles durchgelesen, komme aber leider nicht weiter. Ich möchte...
  3. Bedingte Formatierung für einen bestimmten Bereich

    in Microsoft Excel Hilfe
    Bedingte Formatierung für einen bestimmten Bereich: Liebe Forumnutzer, ich suche nach einer Lösung zu einer bedingten Formatierung. Diese soll nur für einen bestimmten Zeitraum aktiv sein, also von "Start" - "Ende". Dabei sind die Zeiten flexibel....
  4. Prüfung ob Wert in Spalte mit Wert aus bestimmtem Bereich übereinstimmt

    in Microsoft Excel Hilfe
    Prüfung ob Wert in Spalte mit Wert aus bestimmtem Bereich übereinstimmt: Hallo zusammen, ich möchte, dass Excel prüft, ob der Text in Spalte H2 von Tabellenblatt 1 mit einem der Werte aus dem Bereich B2 bis B925 aus Tabellenblatt 2 übereinstimmt. Sofern dies der Fall...
  5. Auswählen bestimmter Zellen oder Bereiche

    in Microsoft Excel Tutorials
    Auswählen bestimmter Zellen oder Bereiche: Auswählen bestimmter Zellen oder Bereiche Excel für Microsoft 365 Excel für das Web Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007...
  6. Subtraktion des niedrigsten Wertes vom höchsten Wert aus einem bestimmten Bereich

    in Microsoft Excel Hilfe
    Subtraktion des niedrigsten Wertes vom höchsten Wert aus einem bestimmten Bereich: Guten Tag  Ich komme leider bei meiner Auswertung nicht weiter. Dazu habe ich einen Anhang hochgeladen. Ich benötige eine Formel für folgenden Sachverhalt. Wenn in einem bestimmten Bereich der...
  7. Summieren in bestimmten Bereichen

    in Microsoft Excel Hilfe
    Summieren in bestimmten Bereichen: Moin moin, ich hänge an einem Problem fest und überlege, ob sich das überhaupt lösen lässt: Ich markiere Zeitspannen, die kürzer oder gleich 1 Stunde sind zwischen den Arbeitszeiten, ie....
  8. Bestimmten Bereich (Kalenderwoche) aus einem Tabellenblatt in ein anderes übertragen

    in Microsoft Excel Hilfe
    Bestimmten Bereich (Kalenderwoche) aus einem Tabellenblatt in ein anderes übertragen: Hallo Leute, ich mal wieder :D ist es möglich, einen bestimmten Bereich in ein anderes Tabellenblatt zu übertragen? Ich habe ein Monatsblatt und möchte daraus einzelne Wochen (Sonntag bis...
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden