Clever-Excel-Forum

Normale Version: Fehler "Typen unverträglich"?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo Stefan,

hast du auch die betroffenen Zellen ausgewählt und mit rechter Maustaste - zellen formatieren - Schutz - ausgeblendet angehackt?
Sobald ich das mache, gibt es die Fehlermeldungen egal ob ich mit "UserInterfaceOnly:=True" oder ohne! :)

LG
Alexandra
Hallo Alexandra,

(16.09.2020, 15:22)cysu11 schrieb: [ -> ]rechter Maustaste - zellen formatieren - Schutz - ausgeblendet angehackt?
Sobald ich das mache, gibt es die Fehlermeldungen egal ob ich mit "UserInterfaceOnly:=True" oder ohne! :)

wann machst Du das? Nachdem das Makro durchgelaufen ist? Und wieso willst Du den Haken setzen?
Hallo Stefan,

das mache ich bevor ich überhaupt irgend ein Code starte und das mache ich damit die Formeln ausgeblendet werden!

LG
Alexandra
Hallo Alexandra,

wenn ich den Code einmal durchlaufen lasse, ist das Tabellenblatt geschützt. Dann kann ich den Haken Formel ausgeblendet mehr nicht setzen, weil der Punkt Zellen formatieren im Kontextmenü grau ist. Hebe ich den Blattschutz auf, kann ich den Haken setzen bzw. entfernen ohne das ich eine Fehlermeldung erhalte.
Hallöchen,
Kann es sein dass es da Probleme mit der Reihenfolge der verschiedenen Aktionen gibt? Also, beim Blattschutz setzen müsste neben dem UserInterfaceOnly gleichzeitig das Ausblenden der Formeln gesetzt werden.
Wenn das passt, der Anwender keine Formeln sieht und nur an ungeschützten Stellen was eingeben kann, kann man schauen, dass ein Makro trotzdem Formeln auslesen und ändern kann. Mein Smartphone unterstützt nur reichlich wenig VBA Undecided
Hallo Stefan, Hallo Andre,

mein Ausgangssituation ist so, daß ich den Hacken bei "Ausgeblendet" mache, bevor ich das Blatt schütze. Dann schütze ich das Blatt entweder manuell oder auch per VBA egal wie, dann kommen immer die Fehlermeldungen, wenn ich in Spalte A was verändere, die Fehlermeldungen, habe ich ja weiter oben schon ausführlich beschrieben! Also der Code funktioniert wunderbar, nur darf ich nicht den Hacken setzen bei "ausgeblendet", dann ist vorbei! :)

Ich vertehe das garnicht, denn wenn ich den Blattschutz manuell aufhebe und aus dem Code die Zeilen mit den Protect und Unprotect auskommentiere, dann funktioniert der Code auch nur daß die Formeln natürlich dann nicht ausgeblendet sind, da der Hacken bei "ausgeblendet" erst dann Wirkung zeigt, wenn der Blattschutz gesetzt wird! Das Problem ist also wenn der Hacken gesetzt ist bei "ausgeblendet" und gleichzeitig Blattschutz im Spiel ist, egal ob manuell oder per VBA!

LG
Alexandra
Hallo zusammen,

ich glaube ich habe den Fehler gefunden!  :72: :72: :72: :72:

Code:
If rngZelle.Offset(0, 3).FormulaR1C1 = "=IF(OR(ISERROR(VLOOKUP(RC1,'C:\TEMP\[Materialdaten.xlsm]Materialdaten'!C1:C9,7,FALSE)),RC1=""""),"""",IF(ISBLANK(VLOOKUP(RC1,'C:\TEMP\[Materialdaten.xlsm]Materialdaten'!C1:C9,7,FALSE)),VLOOKUP(RC1,Materialdaten.xlsm!C1:C9,2,FALSE),VLOOKUP(RC[-3],'C:\TEMP\[Materialdaten.xlsm]Materialdaten'!C1:C9,7,FALSE)))" Then
         Else
            rngZelle.Offset(0, 3).FormulaR1C1 = "=IF(OR(ISERROR(VLOOKUP(RC1,'C:\TEMP\[Materialdaten.xlsm]Materialdaten'!C1:C9,7,FALSE)),RC1=""""),"""",IF(ISBLANK(VLOOKUP(RC1,'C:\TEMP\[Materialdaten.xlsm]Materialdaten'!C1:C9,7,FALSE)),VLOOKUP(RC1,Materialdaten.xlsm!C1:C9,2,FALSE),VLOOKUP(RC[-3],'C:\TEMP\[Materialdaten.xlsm]Materialdaten'!C1:C9,7,FALSE)))"
         End If

In der Formel fehlt das Verzeichnis, sieh rote Schrift! Ich ärgere mich sooooooooooo!  Angry
Wie immer das Problem sitzt vor dem PC!

Sorry für die Umstände & vielen lieben Dank nochmals an Alle die mitgeholfen haben! :)

LG & ein schönes WE noch
Alexandra

P.S. Warum wird das markierte nicht rot angezeigt? Mache ich da wieder was falsch? :)
Hallo Alexandra,

(19.09.2020, 18:32)cysu11 schrieb: [ -> ]P.S. Warum wird das markierte nicht rot angezeigt? Mache ich da wieder was falsch? :)

im Code-Tag bzw. PHP-Tag geht das nich. In solchen Fällen müsstest Du glaube den Zitier-Tag benutzen.
Hallo zusammen,

ich habe mich doch zu früh gefreut :(

Ich habe nun zwei Testdateien erstellt, damit Ihr das besser nachvollziehen könnt. Ich beschreibe das Problem kurz nochmals.
In der Datei "Test.xlsm" findet Ihr den VBA-Code mit dem geprüft werden soll ob in der jeweiligen Zeile nach Eingabe in Spalte A eine bestimmte Formel vorhanden ist, wenn nicht, dann soll diese entsprechend eingetragen werden.
Das ganze funktioniert wunderbar, auch wenn das Blatt geschützt ist, natürlich nicht der Bereich B30 bis G42, dieser ist nicht gesperrt, denn dieser Bereich soll auch manuell überschrieben werden können. Soweit so gut!

Das Problem fängt an, wenn ich diesen Bereich markiere, rechte Maustaste, Zellen formatieren, Reiter Schutz und "Ausgeblendet" anhacke und dann wieder Blattschutz einschalte! Dann werden nur noch die Daten gezogen aus der Datei "Materialdaten.xlsm" wo bereits die Formeln schon drin sind in den Zellen. Da wo noch keine Formeln drin sind, gibt es immer Fehlermeldungen!

Schalte ich das "Ausblenden" wieder aus, dann geht alles ohne Problem! Ich kann das absolut nicht nachvollziehen!?

Was muss ich ändern, damit das so funktioniert, wie ich es haben will?

Vielen Dank im Voraus
LG
Alexandra
Hallo Alexandra,

teste mal
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Sheets("Test").Unprotect
Dim RaBereich As Range, rngZelle As Range
Set RaBereich = Columns(1)
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
For Each rngZelle In RaBereich
If rngZelle.Row > 29 And rngZelle.Row < 43 Then
If rngZelle.Value <> "" Then
Application.EnableEvents = False
If rngZelle.Offset(0, 1).FormulaR1C1 <> "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,5,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,5,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,5,FALSE)))" Then
rngZelle.Offset(0, 1).FormulaR1C1 = "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,5,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,5,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,5,FALSE)))"
End If
If rngZelle.Offset(0, 2).FormulaR1C1 <> "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,6,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,6,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,6,FALSE)))" Then
rngZelle.Offset(0, 2).FormulaR1C1 = "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,6,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,6,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,6,FALSE)))"
End If
If rngZelle.Offset(0, 3).FormulaR1C1 <> "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,9,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,9,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,9,FALSE)))" Then
rngZelle.Offset(0, 3).FormulaR1C1 = "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,9,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,9,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,9,FALSE)))"
End If
If rngZelle.Offset(0, 5).FormulaR1C1 <> "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,2,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,2,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,2,FALSE)))" Then
rngZelle.Offset(0, 5).FormulaR1C1 = "=IF(RC1="""","""",IF(OR(ISBLANK(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,2,FALSE)),ISERROR(VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,2,FALSE))),"""",VLOOKUP(RC1,'C:\Temp\[Materialdaten.xlsm]Materialdaten'!C1:C9,2,FALSE)))"
End If
If rngZelle.Offset(0, 6).FormulaR1C1 <> "=IF(OR(RC[-2]="""",RC[-1]=""""),"""",RC[-2]*RC[-1])" Then
rngZelle.Offset(0, 6).FormulaR1C1 = "=IF(OR(RC[-2]="""",RC[-1]=""""),"""",RC[-2]*RC[-1])"
End If
Application.EnableEvents = True
Else
Application.EnableEvents = False
rngZelle.Offset(0, 4).Value = ""
Application.EnableEvents = True
End If
End If
Next rngZelle
End If
Set RaBereich = Nothing
ThisWorkbook.Sheets("Test").Protect
End Sub
Seiten: 1 2 3 4