Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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

Formula1 - Fehler / DropDown-Menü

Formula1 - Fehler / DropDown-Menü
28.11.2022 16:05:14
MH
Guten Tag,
folgende Fragestellung:
Ich habe in einer Tabelle ein via Makro erstelltes Tabellenblatt. Dabei liest das Makro eine Namensliste auf der ersten Seite und erstellt entsprechende Tabellenblätter. Zum Füllen der Tabellenblätter nutze ich folgende Sub:

Sub FillSheets(N As String)
Worksheets(N).Range("A1").Value = "Datum"
Worksheets(N).Range("B1").Value = "Dokumentnummer"
Worksheets(N).Range("C1").Value = "Rechnungsposten"
Worksheets(N).Range("D1").Value = "Betrag"
Worksheets(N).Range("D2:D50").NumberFormat = "[Green]#,##0.00 €_);[Red]$#,##0.00 €"
Worksheets(N).Range("E1").Value = "Kommentar"
Worksheets(N).Range("I1").Value = "Name"
Worksheets(N).Range("J1").Value = ActiveSheet.Name
Worksheets(N).Range("I2").Value = "Mailadresse"
Worksheets(N).Range("I3").Value = "Gesamtbetrag"
Worksheets(N).Range("J3").Formula = "=SUM(D2:D50)"
Worksheets(N).Range("A2:E51").BorderAround _
ColorIndex:=10, Weight:=xlThick
'Mailadresse auslesen und einfügen
s = ActiveWorkbook.Worksheets.Count - 2
If s > 1 Then
For u = 2 To s
Worksheets(N).Range("J2").Value = Worksheets(1).Range("B" & u).Value
Next u
End If
Columns("J").ColumnWidth = 6 * 4.58
Columns("I").ColumnWidth = 6 * 4.58
For C = 2 To 50
Worksheets(N).Range("B" & C).FormulaLocal = "=WENN(ISTLEER(A" & C & ");"""";Rechnungskuerzel(C" & C & ";A" & C & ";J1))"
Next C
Columns("A").ColumnWidth = 3 * 4.58
Columns("B").ColumnWidth = 6 * 4.58
Columns("C").ColumnWidth = 6 * 4.58
Columns("D").ColumnWidth = 2.5 * 4.58
Columns("E").ColumnWidth = 6 * 4.58
Range("C1:C50").NumberFormat = "dd.mm.yy"
For i = 2 To 50
Worksheets(N).Range("C" & i).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Abringeln,Zahlung,Beleg,Übertrag,Sonstiges"
Next i
End Sub
Der relevante Teil steht direkt über End Sub
Scheinbar willkürlich wird manchmal das gewünschte DropDown-Menü mit den Einträgen "Abringeln", "Zahlung", "Beleg", "Übertrag", "Sonstiges" erzeugt und manchmal wird zwar ein DropDown-Menü, jedoch mit nur einem Eintrag namens "Abringeln,Zahlung,Beleg,Übertrag,Sonstiges" erzeugt. Letzteres ist natürlich nicht Sinn der Sache. Woran liegt das und wie kann ich hier Zuverlässigkeit erreichen?
Besten Dank im Voraus!
Excel: Microsoft Excel für Mac Version 16.67 (365 Abonnement)
Betriebssystem: OS X Ventura 13.0

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formula1 - Fehler / DropDown-Menü
28.11.2022 16:17:16
Daniel
Hi
Am sichersten gehst du, wenn du die Begriffe auf einen anderen Blatt in einem Zellvereich untereinander schreibst und dann diesen Zellbereich als Quelle für die Datenüberprüfungsliste verwendest.
Gruß Daniel
AW: Formula1 - Fehler / DropDown-Menü
28.11.2022 16:52:04
MH
Hallo Daniel,
darauf würde ich gerne verzichten, das Projekt ist mittlerweile recht groß und ich habe an vielen Stellen relativ (Worksheets(1)) auf Tabellenblätter verwiesen; regelmäßig auch über Worksheets(ActiveWorkbook.Worksheets.Count-1), sodass ich keine leeren Tabellenblätter einfügen möchte. Ich konnte mittlerweile herausfinden, dass es hauptsächlich für den Iterationsschritt i=32 auftritt - warum auch immer.
Gibt es weitere Lösungsvorschläge?
Anzeige
AW: Formula1 - Fehler / DropDown-Menü
28.11.2022 17:23:50
Daniel
Dh es ist innerhalb des gleichen Tabelkenblatts unterschiedlich, und Zelle Zeile 32 ist korrekt und Zelle Zeile 33 nicht mehr?
Probiert mal, hier nicht jede Zelle einzeln zu bearbeiten, sondern alle gemeinsam/in einem Schritt, ohne Schleife

Worksheets(N).Range("C2:C50").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Abringeln,Zahlung,Beleg,Übertrag,Sonstiges"

AW: Formula1 - Fehler / DropDown-Menü
28.11.2022 20:14:51
Yal
Moin,
+1 für die Idee von Daniel, die Zellen "en block" einzurichten.
Die Datenüberprüfung ist eine Diva: es verlangt eine deutsche Schreibweise, falls dein Excel auf Deutsch eingestellt ist. Also Semikolon als Trennzeichen.

Worksheets(N).Range("C2:C50").Validation.Add _
Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Abringeln;Zahlung;Beleg;Übertrag;Sonstiges"
VG
Yal
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige