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

VBA Combo-Boxen...

Discussion in 'Office-Programme' started by dj-mettwurst, Feb 25, 2008.

Thread Status:
Not open for further replies.
  1. Hallo zusammen,

    ich hoffe, das ist hier richtig geposted, hab nur nix besseres gefunden...

    Folgendes Problem:

    Ich hab mir in Excel VBA eine UserForm erstellt.
    Innerhalb dieser UserForm sind 2 Combo-Boxen.
    Die eine Combo-Box beinhaltet die Monate von Jan. bis Dez.,
    die andere die Jahre von 1997 bis 2008.
    Diese Combo-Boxen ziehen Ihre Infos aus einem Bereich einer Tabelle.
    So weit so gut, das funktioniert alles wunderbar.
    Allerdings möchte ich die Information, auf welchem Element diese Combo-Box gerade steht als einen Teil eines Pfades benutzen, sprich wenn ich den Monat Januar anklicke, dann soll dieser "Wert" (= Januar) mir irgendwo gespeichert werden, damit ich Ihn später weiter verwenden kann.
    Das selbe gilt auch für das Jahr.
    Es soll dann so aussehen, dass beim öffnen der Datei dann steht:

    Workbooks.OpenText (Monat & "\" & Jahr & "\" & "......")
    oder so änlich

    Nur weiss ich leider nicht, wie ich diese Information auslesen kann....

    Es wäre sehr schön, wenn mir dabei jemand helfen könnte


    Mit freundlichen Grüßen

    Florian B.


    ----EDIT-----
    Sorry, hab´s erst nach dem Senden gesehen, dass es hier noch ein Extra Sub-Forum gibt für Office-Programme....:D
     
  2. ....Es wäre deshalb schön, wenn dieser Thread entweder verschoben werden könnte in den richtigen Bereich oooooooooder ich trotzdem ne Antwort bekomme :D

    Ist nicht böse gemeint, wäre nur sehr nett...:bitte:
     
  3. P.A.C.O.

    P.A.C.O. Ex-Foren-Bulle

  4. --Update---

    Hat sich alles wieder erledigt, die Geschichte war für meinen Betreuer, jedoch hat er sich jetzt anders entschieden und hat alles nochmal komplett übern Haufen geworfen ^^

    Folgendes anderes Problem, allerdings nicht allzu schwer (hoffe ich doch mal):

    Ich habe durch Eingaben von Monat und Jahr in Inputboxen einen Ordner-Pfad zusammengebastelt, in dem verschiedene Dateien stehen, diese Dateien sind alles Excel-Tabellen.

    Jetzt müssen sich diese Dateien alle nacheinander öffnen und die Inhalte untereinander geschrieben werden.

    Weiss nur leider nicht, wie ich dem mit Hilfe dieses Pfades sagen kann, dass er alle Dateien, die sich in diesem Ordner befinden, öffnet und zusammenpackt.

    Ich hoffe, dass die Infos reichen, bei fragen.....einfach fragen ^^

    MfG


    Dj
     
  5. Beverly

    Beverly Halbes Megabyte

    Hi,

    hier mal ein Beispielcode, wie man Excel-Arbeitsmappen eines Verzeichnisses öffnen und den Wert aus der gerade aktiven Tabelle, Zelle A12 fortlaufend nach Spalte A (ab Zeile 6) übernehmen kann

    Code:
    Sub mehrere_arbeitsmappen_oeffnen()
        Dim strVerzeichnis As String
        Dim strDatei As String
        Dim strTyp As String
        Dim strDateiname As String
        Dim loZeile As Long
        strTyp = "*.xls"
        Application.ScreenUpdating = False
        strVerzeichnis = ThisWorkbook.Worksheets("Tabelle1").Cells(2, 1)
        If Right(strVerzeichnis, 1) <> "\" Then strVerzeichnis = strVerzeichnis & "\"
        strDateiname = Dir(strVerzeichnis & strTyp)
        loZeile = 6
        With ThisWorkbook.Worksheets("Tabelle1")
            Do While strDateiname <> ""
                Workbooks.Open Filename:=strVerzeichnis & strDateiname
                .Cells(loZeile, 1) = ActiveWorkbook.ActiveSheet.Cells(12, 1)
                ActiveWorkbook.Close True
                strDateiname = Dir
                loZeile = loZeile + 1
            Loop
        End With
        Application.ScreenUpdating = True
    End Sub
    
    Der Pfad wird aus Tabelle1 Zelle A2 ausgelesen.
     
  6. Hallo,

    danke erstmal für die Mühe....aber leider hilft mir das nicht weiter...oder ich versteh einfach nciht, wie ich das anwenden muss :D

    Ich mach mal ein kleines Beispiel, vielleicht hab ich mich auch falsch ausgedrückt....aaaaaaaaaaaaaalso:

    Nehmen wir an, ich habe in dem Ordnder "Rechnungen" (Pfad:C:\Documents and Settings\Florian.Boelling\Desktop\Rechnungen) mehrere Unterordner mit verschiedenen Jahren (2001 bis 2007).
    In diesen Ordnern sind wiederum pro Jahr die Ordner "Januar" bis "Dezember" enthalten.
    Innerhalb dieser Ordner wiederum sind verschiedene (ca. 10, variiert von Monat zu Monat) Workbooks, in denen unterschiedlichste Rechnungen stehen.
    Diese sollen ALLE nacheinander erst geöffnet, die Inhalte kopiert und in ein neues Workbook gepackt werden, jedoch nich jede Rechnung in ein anderes Workbook, sondern die Inhalte aller Workbooks in EIN EINZIGES Workbook untereinander.
    Die Auswahl des Ordner-Pfades, sprich in welche Jahres/Monats-Ordner gegangen werden muss, wird mit InputBoxen und ein bisschen basteln zusammengesetzt.
    Letzteres hab ich schon geschafft, also den Pfad habe ich schon, jetzt muss ich nur noch wissen, wie ich ALLE Dateien aus diesem Ordner öffne, Inhalte kopiere und einfüge und anschliessend das Workbook wieder schliesse.

    Ich hoffe jetzt ist es ein bisschen klarer :D
     
  7. Beverly

    Beverly Halbes Megabyte

    Hi,

    genau das macht doch der gepostete Code - du musst nur anstelle des vorgegebenen Pfades in der Zelle den Pfad aus deiner Inputbox verwenden. Alle Arbeitsmappen in dem betreffenden Verzeichnis werden geöffnet, der Wert ausgelesen und in die Arbeitsmappe mit dem Code kopiert. Anschließend wird diese Arbeitsmappe wieder geschlossen. Du musst halt nur noch anpassen, welcher Bereich aus welchem Tabellenblatt kopiert werden soll.
     
Thread Status:
Not open for further replies.

Share This Page