Live-Forum - Die aktuellen Beiträge
Datum
Titel
07.05.2024 14:51:38
07.05.2024 13:27:17
Anzeige
Archiv - Navigation
1896to1900
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

Via ComboBox gruppieren

Via ComboBox gruppieren
13.09.2022 16:02:21
Everlos03
Hallo zusammen,
ich komme nicht weiter und weiss auch nicht ob ich da auf dem Holzweg bin.
Ich habe eine Arbeitsmappe mit 30 Tabellenblätter die mit Datum benannt sind. Also z.B. 01.01.22; 02.01.22 bis 30.01.22. Klicke ich jetzt beispielsweise auf die Zelle "A1" öffnet sich eine Userform mit einer TextBox über der ich den Wert festlege z.B. Urlaub oder einen Namen. Via einer Combox möchte ich dann diesen Wert auf den jeweiligen Tabellenblättern auch eintragen. Z. B. Combobox1 "15.01.22" sollten nun alle Tabellenblätter vom ActiveSheet bis zu dem Datum der ComboBox -Auswahl gruppiert werden um so in den ausgewählten Tabellenblättern den Wert Urlaub oder Name in die Zelle "A1" zu schreiben.
Hoffe das ist verständlich. Vielleicht geht es auch einfacher und ich mach es zu kompliziert.
Vllt kann mir ja jemand helfen.
MFG
Everlost03

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Via ComboBox gruppieren
13.09.2022 20:04:20
Everlost03
Hallo Nepumuk,
du bist genial und da wäre ich auch nicht drauf gekommen, aber genau so habe ich es mir vorgestellt! :-)
Vielen lieben Dank!
LG
Everlost03
AW: Via ComboBox gruppieren
13.09.2022 22:00:55
Everlost03
Hallo Nepumuk,
nun habe ich doch noch eine Frage sofern möglich.
Kann der Startwert der ComboBox auf das aktive Blatt gesetzt werden? So das ich nicht jedes Mal Scrollen muss.
Der letzte ausgewählte Eintrag würde auch gehen.
LG
Everlost03
Anzeige
AW: Via ComboBox gruppieren
13.09.2022 22:42:19
GerdL
Moin

Private Sub ComboBox1_Change()
Dim lngIndex As Long, ialngIndex As Long
Dim astrSheets() As String
ActiveCell.Value = TextBox1.Text
If ComboBox1.ListIndex > -1 Then
For lngIndex = ActiveSheet.Index To ComboBox1.ListIndex + 1
ReDim Preserve astrSheets(ialngIndex)
astrSheets(ialngIndex) = ThisWorkbook.Worksheets(lngIndex).Name
ialngIndex = ialngIndex + 1
Next
End If
If ialngIndex > 1 Then Call Worksheets(astrSheets).FillAcrossSheets(Range:=ActiveCell, Type:=xlFillWithContents)
End Sub
Private Sub CommandButton2_Click()
Call Unload(Object:=Me)
End Sub
Private Sub UserForm_Initialize()
Dim objWorksheet As Worksheet
For Each objWorksheet In ThisWorkbook.Worksheets
Call ComboBox1.AddItem(pvargItem:=objWorksheet.Name)
Next
ComboBox1.ListIndex = ActiveSheet.Index - 1
End Sub
Gruß Gerd
Anzeige
AW: Via ComboBox gruppieren
15.09.2022 11:02:44
Everlost03
Hallo Gerd,
das war, vielen Dank.
Habe jetzt seit 2 Tagen versucht mein letztes Problem zu lösen. Ich habe das Ereignis der UserFrom also wann sie startet auf einen Zellenbereich begrenzt.
Danke nochmal an Nepumuk für den Code.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C67:E71")) Is Nothing Then
Exit Sub
End If
Call UserForm1.Show
Cancel = True
End Sub
Ich war zwar soweit das beschriebene Zellen nicht überschrieben werden aber eigtl würde ich gern das die nächste freie Zelle aus dem Bereich C67:E71 ausgefüllt wird.
Beispiel: Ich trage im Tabellenblatt 010.01.22 Brasilien auf C67 ein und setzt via ComboBox das Tabellenblatt 20.01.22. Danach trage ich im Tabellenblatt 01.01.22 auf C67 Deutschland ein und setzte das auf 20.01.22 dann würde er jetzt natürlich den alten Eintrag überschreiben. Müsste ich da was über die einzelnen Tabellenblätter regeln oder gibt es eine Möglichkeit in Nepumuks Code was einzubauen wie : Wenn ein Tabellenblatt C67 Inhalt oder gesperrt dann nächste freie Zelle aus dem Bereich C67:E71.
LG
Everlost03
Anzeige
AW: Via ComboBox gruppieren
15.09.2022 15:22:38
GerdL
Hallo,
mit den "Richtungen" ist es so eine Sache. Hier mit der standardisierten Zellenwanderung lt. VBA bei gefüllter doppelt geklickter Zelle..

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Const strBereich As String = "C67:E71"
Dim C As Range
Cancel = Not Intersect(Target, Range(strBereich)) Is Nothing
If Cancel Then
If WorksheetFunction.CountBlank(Range(strBereich)) > 0 Then
If Not IsEmpty(Target) Then
For Each C In Range(strBereich)
If C.Value = "" Then
Application.EnableEvents = False
C.Select
Application.EnableEvents = True
Exit For
End If
Next
End If
MsgBox "Call UserForm1.Show"
Else
MsgBox "Keine freie Zelle in " & strBereich & "!"
End If
End If
End Sub
Gruß Gerd
Anzeige
AW: Via ComboBox gruppieren
16.09.2022 10:40:37
Everlost03
Nochmal danke Gerd,
werde mal versuchen was damit hinzubekommen, ansonsten überleg ich mir einen anderen Aufbau.
LG
Everlost03

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige