Registriert seit: 29.06.2016
Version(en): 2010
hallo,
Ich stelle gerade ein Bauteilkatalog zusammen. da viele Infos voneinander abhängig sind habe ich das mit dem Namensmanager -> Datenüberprüfung -> indirekt(a1) gelöst.
Ich möchte nun das beim Start der Tabelle alle Dropdownfelder der Datenüberprüfung leer ist. Aus dem Grund das nicht alle Bauteile zum Beispiel 8 Schichten haben, sondern nur 3. 5 der Dropdownfelder sollten dann leer sein.
Über den Namensmanager habe leider keine leeren Zeilen miteingerahmt. sondern nur den Inhalt. Es sind wirklich viele und es wäre mega aufwändig das nachzuholen.
Es sind quasi 3 Spalten die voneinander abhängig sind. Spalte A kann ich leer auswählen aber für Spalte B und C ist der Aufwand einfach mega groß.
Leider kann man bei der Datenüberprüfung mit keiner WENN abfage arbeiten.
Als ich die Dropdownfelder erstellt habe waren sie ja am anfang auch leer. Deswegen meine Hoffnung das es möglich ist.
Aus dem Netz habe ich diese VBA Formel:
Private Sub Workbook_Open()
Range("A1:A20").ClearContents
End Sub
Jetzt habe ich leider keine Ahnung von VBA. habs mal so rein kopiert aber er zeigt mir beim debuggen den Fehler an: Fehler beim Kompilieren:
Mehrdeutiger Name: Wokbook_Open
Hoffe man kann mir weiter helfen.
Liebe Grüße
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo,
Zitat:Jetzt habe ich leider keine Ahnung von VBA. habs mal so rein kopiert aber er zeigt mir beim debuggen den Fehler an: Fehler beim Kompilieren:
Mehrdeutiger Name: Wokbook_Open
bedeutet, daß ein Makro dieses Namens mindestens zwei mal vorhanden ist.
Das heißt, Du mußt einem dieser Makros einen anderen Nanen geben oder beide zusammenführen.
Auch eineiige Zwillinge haben ja unterschiedliche Vornamen :05:
Zitat:Aus dem Netz habe ich diese VBA Formel:
Private Sub Workbook_Open()
Range("A1:A20").ClearContents
End Sub
wohin hast Du das Makro kopiert?
es heißt:
Private Sub Workbook_Open()und gehört damit nicht in ein Allgemeines Modul sondern in das Klassenmodul "Diese Arbeitsmappe".Und hier solltest Du dann auch das zweite Private Sub Workbook_Open() Makro finden.
Registriert seit: 29.06.2016
Version(en): 2010
Zitat:wohin hast Du das Makro kopiert?
Ich gehe auf die betreffende Tabelle. Drück Alt und f11. gehe dann links bei der auswahl auf die gewünschte Tabelle "Bauteilauswahl" , rechtklick und auf Code anzeigen.
Ok das mit den Namen ergibt Sinn. Nur was davon beinhaltet den Namen?
Private Sub Workbook2_Open()
Range("B1:B20").ClearContents
End SubPrivate Sub Workbook3_Open()
Range("C1:C20").ClearContents
End Subwäre das so richtig?
Und ist das Makro damit aktiviert wenn ich die Excel tabelle richtig abspeichere?
Ist die Formel überhaupt richtig? sind dann die Dropdownzeilen leer? ( natürlich aber nicht der Inhalt )
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo,
Zitat:Ok das mit den Namen ergibt Sinn. Nur was davon beinhaltet den Namen?
... na, die Überschrift, was denn sonst wohl?
Registriert seit: 29.06.2016
Version(en): 2010
Also nicht so wie oben geschrieben?
Private Sub2 Workbook_Open()
Range("B1:B20").ClearContents
End Sub
Private Sub3 Workbook_Open()
Range("C1:C20").ClearContents
End Sub
ist das so besser? was ist denn die Überschrift?
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
29.06.2016, 11:39
(Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2016, 11:42 von Käpt'n Blaubär.)
Hallo,
Zitat:Private Sub Workbook2_Open()
Range("B1:B20").ClearContents
End Sub
Private Sub Workbook3_Open()
Range("C1:C20").ClearContents
End Sub
wäre das so richtig?
Zitat:Private Sub Workbook_Open()
Range("B1:B20").ClearContents
Range("C1:C20").ClearContents
End Sub
ob das richtig ist, das kann ich Dir nicht sagen. Dafür gibt es zu viele Unbekannte.Was ich dir sagen kann ist, daß Du wie ich oben gezeigt habe, auf diese Weise die Makros zu einem machen kannst.In diesem Makro werden jeweils beim Start der Datei die Werte in den beiden definierten Zellbereichen gelöscht.Etwas anderes passiert nicht.Ach ja, Du kannst die Makros nicht einfach durchnummerieren. So wie Du das gemacht hast, fühlt sich keines der beidenzuständig. Wie heißt es bei Highländer so schön "es kann nur Einen geben".
Registriert seit: 11.04.2014
Version(en): Office 2007
Auch Hallo,
da gehört noch das Worksheet dazu
Code:
Private Sub Workbook_Open()
With Worksheets("..........")
.Range("B1:C20").ClearContents
End with
End Sub
Die Punkte bitte durch den Tabellennamen ersetzen.
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• seyan1408
Registriert seit: 29.06.2016
Version(en): 2010
Code:
Private Sub Workbook_Open()
With Worksheets("Bauteilauswahl")
.Range("B1:C20").ClearContents
.Range("C1:c20").ClearContents
End with
End Sub
So kann ich das schreiben? Und soll das in ein neu erstelles Modul. Oder wie oben beschrieben. Drück Alt und f11. gehe dann links bei der auswahl auf die gewünschte Tabelle "Bauteilauswahl" , rechtklick und auf Code anzeigen.
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
29.06.2016, 13:22
(Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2016, 13:22 von Käpt'n Blaubär.)
Hallo,
... aber lesen kannst Du doch, oder?
ich habe oben im Beitrag #2 schon geschrieben, wo sowas hingehört
Zitat:Private Sub Workbook_Open()
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
der Code gehört in das Klasenmodul DieseArbeitsmappe und gestartet wird er wenn du die Mappe öffnest.
Module und VBAProject
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• seyan1408