Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
124to128
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
124to128
124to128
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler ......

Laufzeitfehler ......
31.05.2002 08:58:51
Nancy
Hallo!

Menno....jetzt hab ich hier sooo gute Hilfe bekommen....alles Funktioniert..und jetzt hab ich beim Löschen von Zellen in einem Tabellenblatt immer folgende Fehlermeldung:
Laufzeitfehler 13 'Typen unverträglich'
Was er anmeckert is das hier:
If Target.Column <> 1 Or Target.Value = "" Then

Und beim schließen der Arbeitsmappe hab ich auch oft solche Meldungen....dabei funktioniert sonst alles ziemlich gut.

Kann mir jemand sagen wie ich die Fehlermeldungen am besten wegkriege....und woran es liegen könnte??????
Bestimmt schwierig ohne zu sehen was ich da alles drin hab....oder????

Gruss Nancy

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Laufzeitfehler ......
31.05.2002 09:11:18
Hans W. Herber
Hallo Nancy,
setze als erste Codezeile - ich vermute mal, dass es hier um das Change-Ereignis geht - ein:
If IsEmpty(Target) then Exit Sub

hans

Re: Laufzeitfehler ......
31.05.2002 09:23:47
Nancy
Hm....hab ich gerade versucht....wahrscheinlich hab ich aber selbst dabei was falsch gemacht(ANFÄNGER!!)

Das hier is das komplette:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim doppel
If Target.Column <> 1 Or Target.Value = "" Then Exit Sub
If WorksheetFunction.CountIf(Columns(1), Target.Value) > 1 Then
Target.Select
doppel = InputBox("Folgender Matchcode bereitsvorhanden:" & Target.Value, "Achtung")
If doppel = Target.Value Then
Target.ClearContents
Else
Target.Value = doppel
End If
End If

End Sub

Danke für die Hilfe!

Gruss Nancy

Anzeige
Re: Laufzeitfehler ......
31.05.2002 09:28:11
Hans W. Herber
... mein Fehler, ma soll nix ungetestet rauslassen.
Als erste Codezeile:
If Target.Cells.Count > 1 Then Exit Sub

hans

Re: Laufzeitfehler ......
31.05.2002 09:49:31
Nancy
Danke!!!
Funktioniert!!!

Hab aber leider noch ein Problem :-(

Ich habe ein Tabellenblatt wo ein sog. Matchcode eingegeben wird.
z.B.:
SpalteA: AB2003 (Matchcode)
SpalteB: 102
SpalteC: 203
SpalteD: 22
SpalteE: 100

Diese Meldung ist dazu da damit keine doppelten Einträge in SpalteA eingegeben werden.
Entweder gebe ich also einen anderen Wert ein...oder ich klicke auf abbrechen und es wird nichts eingegeben.
Das funktioniert jetzt (dank Ihrer Hilfe) sehr gut.

In einem anderen Tabellenblatt habe ich eine ComboBox wo dieser Matchcode ausgewählt werden, oder ein neuer Matchcode eingegeben werden kann.
Dort gibt es auch 4 Zellen zum eingeben der zu dem Matchcode zugehörigen Zahlen und einen CommandButton zum Speichern eines neuen Matchcodes.
Gespeichert wird dann also der Matchcode, und die dazu gehörenden Eingaben aus 4 Zellen.

In dem Tabellenblatt wo dieser Matchcode gespeichert wird, bleibt nach klicken auf Abbrechen in der InputBox nun die erste Spalte leer...so wie es sein soll....aber die Eingaben aus den 4 Zellen des Tabellenblatts werden trotzdem eingetragen. (Was ja nicht sein soll)

Wie....und wo kann ich das ändern???

Gruss Nancy

Danke noch mal für die Lösung!!!

Anzeige
Re: Laufzeitfehler ......
31.05.2002 09:57:51
Hans W. Herber
Hallo Nancy,

die Sache ist mir absolut unklar. Wenn die Codezeilen mit dem Befehl, die Zellen zu füllen nach dem Aufruf der InputBox stehen, setze unmittelbar nach dem Aufruf eine Zeile mit:
If vInput = "" then End
Damit wird das Programm absolut beendet.

Möglicherweise habe ich Dich aber auch falsch verstanden.

hans

Re: Laufzeitfehler ......
31.05.2002 10:04:20
Nancy
Der Befehl die Zellen zu füllen steht ganz woanders:

Sub Test()
Dim TestArray(1 To 5) As Variant
Dim Zeile As Single
Dim Nummer As Variant
Dim i As Byte
Worksheets("Druck").Activate
TestArray(1) = ComboBox1.Text
TestArray(2) = ActiveSheet.Cells(7, 5).Value
TestArray(3) = ActiveSheet.Cells(10, 5).Value
TestArray(4) = ActiveSheet.Cells(7, 12).Value
TestArray(5) = ActiveSheet.Cells(10, 12).Value

Worksheets("P-Tabelle").Activate
For Zeile = 4 To 65536
If ActiveSheet.Cells(Zeile, 1).Value = "" Then
Exit For
End If
Next Zeile

For i = 1 To 5
ActiveSheet.Cells(Zeile, i).Value = TestArray(i)
Next i


Worksheets("Druck").Activate
ComboBox1.SelText = TestArray(1)
End Sub


Private Sub CommandButton9_Click()
Call Test
End Sub

Wenn ich diesen Befehl aufrufe und den Matchcode (in der ComboBox) gibt es schon dann erscheint die Meldung mit der InputBox.
Beim Abbrechen wird dann der Eintrag der ComboBox nicht mehr übernommen.......der Rest aber...was nicht sein soll.

Hoffe jetzt hab ich mich ein bisschen deutlicher ausgedrückt.

Gruss Nancy

Anzeige
Re: Laufzeitfehler ......
31.05.2002 10:10:25
Hans W. Herber
... wenn die InputBox nach dem Makro "Test" aufgerufen wird, wurden die Einträge ja bereits vorgenommen und müßten dann rückgängig gemacht werden.

hans

Re: Laufzeitfehler ......
31.05.2002 11:00:57
Nancy
Ja...und genau das versuch ich gerade....ohne Erfolg :-(
Wie mache ich denn das Makro "Test" rückgängig wenn man in der InputBox auf Abbrechen klickt? Und wo?

Ich kriegs nicht hin.

Gruss Nancy

ok...hat sich erledigt
31.05.2002 11:38:30
Nancy
Ich habs :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige