Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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
Inhalt ComboBox aus andere Datei
13.01.2016 15:02:51
Dirk
Hallo VBA-Profis,
vielleicht..., na eher wahrscheinlich, könnt ihr mir bei dem folgenden Problem helfen.
Ich habe zwei Dateien; einen Vordruck und eine Datendatei. Im Vordruck ist eine Combobox enthalten, in der ich die Zellinhalte aus der Spalte A der Datendatei einlese. Das klappt auch soweit. Problem an der Sache ist, dass sich der Dateiname der Datendatei, bis auf den Anfang jedes Jahr ändert (Jahreszahl).
Hier nun die Aufgaben:
1. Überprüfe, ob eine Datei geöffnet ist, die mit "Reklamationsübersicht" beginnt und die Dateiendung ".xlsx" hat.
2. Lese aus dieser Datei den Zellinhalt aus Spalte A in die Combobox des Vordrucks ein.
Vordruck und Datendatei befinden sich nicht im gleichen Verzeichnis.
Mein Ansatz:
Private Sub Worksheet_Activate()
Dim ReklNr As Long
ReklNr = Workbooks("Reklamationsübersicht_2016.xlsx").Sheets("Reklamationen").Range("A65536"). _
End(xlUp).Row
Me.cbbReklNr.List = Workbooks("Reklamationsübersicht_2016.xlsx").Sheets("Reklamationen").Range(" _
A4:A" & ReklNr).Value
End Sub
Danke euch im Voraus.
Gruß
Dirk

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt ComboBox aus andere Datei
16.01.2016 08:14:46
Sepp
Hallo Dirk,
so?
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Activate()
Dim objWB As Workbook
Dim lngLast As Long, strFileName As String

strFileName = "Reklamationsübersicht_" & CStr(Year(Date)) & ".xlsx"

For Each objWB In Application.Workbooks
  If objWB.Name = strFileName Then
    With objWB.Sheets("Reklamationen")
      lngLast = Application.Max(4, .Cells(.Rows.Count, 1).End(xlUp).Row)
      Me.cbbReklNr.List = .Range("A4:A" & lngLast).Value
      Exit For
    End With
  End If
Next

If lngLast = 0 Then
  MsgBox "Datei '" & strFileName & "' ist nicht geöffnet!"
End If

End Sub

Gruß Sepp

Anzeige
AW: Inhalt ComboBox aus andere Datei
18.01.2016 07:58:31
Dirk
Hallo Sepp,
dass klappt super, so habe ich mir das gedacht.
Eine Frage habe ich noch; wenn ich den Inhalt der Combobox variabel halten möchte, also wenn ich z. B. die Combobox mit den Inhalten aus der geöffneten Reklamationsübersicht 2015 oder 2014 oder 2016 füllen möchte, wie sieht es dann mit dem Code aus?
Gruß
Dirk

AW: Inhalt ComboBox aus andere Datei
18.01.2016 08:03:07
Dirk
Kleiner Nachtrag zu meiner letzten Frage; kann man vielleicht mit Platzhalter arbeiten? z.B. "Reklamationsübersicht_*.xlsx"?
Danke
Gruß
Dirk

AW: Inhalt ComboBox aus andere Datei
18.01.2016 08:06:58
Sepp
Hallo Dirk,
mit Wildcard so.
Private Sub Worksheet_Activate()
Dim objWB As Workbook
Dim lngLast As Long, strFileName As String

strFileName = "Reklamationsübersicht_*.xlsx"

For Each objWB In Application.Workbooks
  If objWB.Name Like strFileName Then
    With objWB.Sheets("Reklamationen")
      lngLast = Application.Max(4, .Cells(.Rows.Count, 1).End(xlUp).Row)
      Me.cbbReklNr.List = .Range("A4:A" & lngLast).Value
      Exit For
    End With
  End If
Next

If lngLast = 0 Then
  MsgBox "Datei '" & strFileName & "' ist nicht geöffnet!"
End If

End Sub

Gruß Sepp

Anzeige
AW: Inhalt ComboBox aus andere Datei
18.01.2016 13:26:11
Dirk
Hallo Sepp,
vielen Dank für Deine Hilfe, klappt hervorragend.
Gruß
Dirk

AW: Inhalt ComboBox aus andere Datei
18.01.2016 08:04:04
Sepp
Hallo Dirk,
dazu gibst du das gewünschte Jahr z. B. per Inputbox ein und setzt die Eingabe statt 'CStr(Year(Date))' in den Code ein.
Gruß Sepp

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige