Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1460to1464
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

Fehler Typen unverträglichkeit bei Abbrechen

Fehler Typen unverträglichkeit bei Abbrechen
25.11.2015 07:48:10
Lars
Hallo,
ich kann mit nachfolgendem Code eine Zeile kopieren und wieder einfügen.
Public Sub KopierenundEinfügen()
Dim lngRow5 As Long, lngRow6 As Long
If TypeOf Selection Is Range Then
Dim i As Integer, j As Integer
lngRow5 = ThisWorkbook.Names("Anfang").RefersToRange.Row
lngRow6 = ThisWorkbook.Names("Ende").RefersToRange.Row
Selection.Cells(1, 1).Select
If Selection.Row > lngRow5 And Selection.Row 

Das Problem ist nur, dass sobald ich den Button Abbrechen betätige, ein Fehler auftritt.
Es kommt Typen Unverträglichkeit.
Hat jemand dazu eine Lösung. Ich kann mir nicht selber helfen.
Danke.

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler Typen unverträglichkeit bei Abbrechen
25.11.2015 08:42:57
Daniel
HI
das liegt daran, dass die Inputbox immer einen Text zurück gibt.
drückst du abbrechen oder klickst OK ohne was einzugeben, so ist der String der Leerstring.
deine aufnehmende Variable ist aber eine Zahl (integer) und daher muss VBA dann den Text aus der Inputbox in eine Zahl wandeln.
das funktioniert aber nur, wenn der eingegebene Text auch wie eine Zahl aussieht, ansonsten gibt es einen Fehlerabbruch.
Der Leerstring "" sieht nicht wie eine Zahl aus, daher dann der Fehler
Eine mögliche Lösung wäre in deinem Fall die Umwandlungsfunktion VAL zu verwenden.
diese gibt den Wert 0 zurück, wenn der umzuwandelnde Text nicht wie eine Zahl aussieht und erzeugt keinen Fehlerabbruch.
Ausserdem solltest du zusätzlich noch prüfen, ob abbrechen oder eine sinnvolle Zahl eingegeben wurde:
i = Val(InputBox("Welche Zeile soll kopiert werden?"))
j = Val(InputBox("In welche Zeile soll kopiert werden?"))
If i = 0 or j = 0 then
msgbox "abbruch"
Exit Sub
End If
Gruß Daniel

Anzeige
AW: Fehler Typen unverträglichkeit bei Abbrechen
25.11.2015 08:52:51
Lars
@Daniel
danke Daniel.
Habe den code um deinen Code
If i = 0 Or j = 0 Then
Exit Sub
End If
erweitert.
Nur muss ich zuerst einmal abbrechen klicken und dann nochmals.
Erst dann ist meine Eingabebox weg.
Irgendwas stimmt noch nicht ganz oder?

AW: Fehler Typen unverträglichkeit bei Abbrechen
25.11.2015 09:02:45
Daniel
Hi
nunja, genau das hatte ich ja auch schon in meinem Codebeispiel geschrieben, das musstest du nicht extra ergänzen.
wenn schon bei der ersten Inputbox abgebrochen werden soll, dann:
i = Val(Inputbox(...))
if i = 0 Then Exit Sub
j = Vale(Inputbox(...))
if j = 0 then Exit Sub
Gruß Daniel

Anzeige
strptr()
25.11.2015 08:47:48
ransi
Hallo,
Versuch mal so:
Dim I As String
I = InputBox("Test")
If StrPtr(I) = 0 Then
    MsgBox "Abgebrochen"
    Else:
    MsgBox I
End If

ransi

Anzeige
AW: strptr()
25.11.2015 08:49:38
Lars
@ransi
Danke für den tipp.
Aber wie soll ich dies in meinem Code einbinden?

AW: strptr()
25.11.2015 09:13:09
ransi
Hallo Lars,
Ungetestet:
.
i = InputBox("Welche Zeile soll kopiert werden?")
j = InputBox("In welche Zeile soll kopiert werden?")
If strptr(i)0 then
if strptr(J)0 then
Deine Kopierroutine
end if
end if
.
ransi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige