Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anwendungs- oder Objektbezogener Fehler

Anwendungs- oder Objektbezogener Fehler
09.08.2007 14:19:57
Olof
Hallo zusammen,
die im Betreff genannte Fehlermeldung taucht immer auf wenn folgender Abschnitt meines Makros läuft.
Auf Grund meiner geringen VBA Kenntnisse habe ich diesen Abschnitt mit dem rekorder aufgezeichnet. Dabei hat auch alles funktioniert, nur halt nicht beim Makro abspielen.
Habt ihr Ideen?
.
..
...
'abhängige Gültigkeitslisten
Range("B13").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= _
"=Bereich.Verschieben(Unterkategorie;;Vergleich(B12;Produkte;0)-1;Anzahl2(Index(Unterkategorie;;Vergleich(B12;Produkte;0)));1)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
...
..
.
Die verwendeten Namen sind vergeben und ich sehe keinen Fehler. Danke für eure prüfenden Blicke.
Olof

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

Betreff
Datum
Anwender
Anzeige
AW: Anwendungs- oder Objektbezogener Fehler
10.08.2007 05:57:00
Luschi
Hallo Olof,
habe Dein Problem mal getestet und herausgefunden, daß bei Validation die Formeln in .Formula1
in amerikanischer Schreibweise gemacht werden müssen, auch wenn der Makrorekorder sie in deutsch ausgibt. In Deinem Fall wäre das:
"=OFFSET(Unterkategorie,,MATCH(Tabelle1!R[5]C[-3],Produkte,0)-1,COUNTA(INDEX(Unterkategorie,,MATCH(Tabelle1!R[5]C[-3],Produkte,0))),1)"
Wenn Du sowas häufiger machst, dann kriegst Du das ohne viel Nachdenken so raus:
1. Schmeiß den Rekorder an
2. Menüfolge: Einfügen-Namen-Definieren... oder Strg+F3
3. Name vergeben und in "Bezieht sich auf:" die gewünschte Formel
    in deutsch eingeben (aber ohne die Anführungsstriche am Anfang und Ende!)
4. OK drücken
5. Recorder beenden
6. sich das gerade erzeugte Makro anschauen
7. jetzt siehst Du die gleiche Formel in der amerikanischen Schreibweise (mit Anführungsstrichen)
8. Formel in die Validation kopieren
9. den Makrorekorder mal loben (er kann, wenn er will)
10. allgemeine Freude verbreiten!
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Anwendungs- oder Objektbezogener Fehler
10.08.2007 10:38:00
Olof
Hi Luschi, der 10. TIP gefällt besonders!!! ;-)
danke für den Hinweis und den Tip bzgl. "Namen-Definieren". Ich habe deine Formel bzgl. des Tabellenblattnamens geändert und eingefügt und erhalte weiterhin den selben Fehler...
Weiterhin bin ich mir nicht ganz sicher wie sich die Zelle B12 richtig im Amerikansichen ergibt.
Über die Namen-Definieren Funktion als Makro werde ich nicht schlau, da das Erghebnis davon abhängt wo ich in welche Zelle klicke bevor ich das Makro aufnehme. Any further ideas?

Hier die BEISPIELDATEI
10.08.2007 12:08:19
Olof
Ich verzweifel wirklich an der Fehlermeldung, deshalb hier mal eine Beispieldatei mit Makro für alle die sich gerne dem Problem annehmen möchten.
Bin dankbar für jeden TIP!!!!
Manuell erstellt funktioniert alles in Tabelle1, lasse ich dann genau dasselbe in Tabelle2 als über ein Makro erstellen zerschießt es mir die abhängige Gültigkeit.
https://www.herber.de/bbs/user/44937.xls
Olof

Anzeige
AW: Hier die BEISPIELDATEI
11.08.2007 10:03:10
Coach
Hallo Olof,
Gültigkeiten funktionieren nur mit lokalen Namen der jeweiligen Tabelle, also:
ActiveWorkbook.Names.Add Name:=ActiveSheet.Name & "!Produkte", RefersToR1C1:="=Tabelle1!R1C7:R1C9"
Range("G2:I4").Select
ActiveWorkbook.Names.Add Name:=ActiveSheet.Name & "!Unterkategorie", RefersToR1C1:="=Tabelle1!R2C7:R4C9"
dann:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET(Unterkategorie,,MATCH(B12,Produkte,0)-1,COUNTA(INDEX(Unterkategorie,,MATCH(B12,Produkte,0))),1)"
Gruß Coach

AW: Hier die BEISPIELDATEI
13.08.2007 09:37:10
Olof
Hallo Coach,
danke für deine Erklärungen. Ich habe das Makro mit meinen wenigen Kenntnissen versucht umzuschreiben.
Hier das Ergebnis:
https://www.herber.de/bbs/user/44989.xls
Das Resultat bleibt genau dasselbe....., was mache ich falsch?
-DANKE

Anzeige
AW: Hier die BEISPIELDATEI
13.08.2007 23:19:00
Harry
Hallo Olof,
verstehe ich dass richtig, du möchtest per Makro die Funktionalität von Tabelle 1 auch in Tabelle 2 herstellen?
Dann

Option Explicit
Sub bedingte_Gueltigkeit()
Dim i As Integer
'Löschen bisheriger Namen in der Mappe, da evtl. schon auf anderem Tabellenblatt
MsgBox ("Names: " & ActiveWorkbook.Names.Count)
If ActiveWorkbook.Names.Count > 0 Then
For i = 1 To ActiveWorkbook.Names.Count
ActiveWorkbook.Names.Item(1).Delete
Next
End If
MsgBox ("Names: " & ActiveWorkbook.Names.Count)
'Tabellenname anpassen
With Sheets("Tabelle2")
'Stammdaten schreiben
.Range("B12") = "1"
.Range("G1") = "1"
.Range("H1") = "2"
.Range("I1") = "3"
.Range("G2") = "a"
.Range("G3") = "a"
.Range("G3") = "aa"
.Range("G4") = "aaa"
.Range("H2") = "b"
.Range("H3") = "bb"
.Range("H4") = "cc"
.Range("I2") = "d"
.Range("I3") = "dd"
.Range("I4") = "ddd"
.Range("H4") = "bbb"
'Namen deklarieren, evtl. hier auch abweichende Namen von Tabelle 1, dann kann die Lö _
schroutine am Anfang der Sub entfallen
.Names.Add Name:="Produkte", RefersTo:="=Tabelle2!$G$1:$I$1"
.Names.Add Name:="Unterkategorie", RefersTo:="=Tabelle2!$G$2:$I$4"
End With
'Gültigkeit eintragen
With Sheets("Tabelle2").Range("B13").Validation
.Delete
'hier die gleichen Namen wie weiter oben verwenden
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:= _
"=offset(Unterkategorie,,match($B$12,Produkte,0)-1,counta(INDEX(Unterkategorie,,match($B$12, _
Produkte,0))),1)"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub


Gruß
Harry

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige