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

VBA-Fehlermeldung

VBA-Fehlermeldung
17.03.2003 12:43:58
Jürgen
Hallo Excel-Profis,

ich möchte bestimmte Werte im Tabelleblatt "Stammdaten" mit Werten aus dem Tabellenblatt " Dispo" überschreiben bzw. aktualisieren (s. beil. Makro).

Worksheets("Stammdaten").Activate
Columns("A:A").Select
Suche1 = Worksheets("Dispo").Range("E13")
Menge1 = Worksheets("Dispo").Range("Q13")
Selection.Find(What:=Suche1, After:=ActiveCell, MatchCase:=False).Activate
ActiveCell.Offset(0, 11).Select
ActiveCell = ActiveCell - Menge1

Worksheets("Stammdaten").Activate
Columns("A:A").Select
Suche2 = Worksheets("Dispo").Range("E14")
Menge2 = Worksheets("Dispo").Range("Q14")
Selection.Find(What:=Suche2, After:=ActiveCell, MatchCase:=False).Activate
ActiveCell.Offset(0, 11).Select
ActiveCell = ActiveCell - Menge2

Worksheets("Stammdaten").Activate
Columns("A:A").Select
Suche3 = Worksheets("Dispo").Range("E15")
Menge3 = Worksheets("Dispo").Range("Q15")
Selection.Find(What:=Suche3, After:=ActiveCell, MatchCase:=False).Activate
ActiveCell.Offset(0, 11).Select
ActiveCell = ActiveCell - Menge3

Das funktioniert aber nur, wenn in den Zellen E13, E14, E15 ein Eintrag vorhanden ist, sonst erscheint folgende Fehlermeldung:
"Laufzeitfehler 13; Typen unverträglich"
Wie kann ich die Meldung unterdrücken bzw. wie muß ich den Code ändern, damit die Meldung nicht mehr erscheint ??


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

Betreff
Datum
Anwender
Anzeige
Re: VBA-Fehlermeldung
17.03.2003 12:59:50
Harald Kapp

Hallo Jürgen,
Du musst wahrscheinlich die leeren Zellen abfangen, etwa so:

if isempty(Worksheets("Dispo").Range("E13")) then
Suche = ""
Else
Suche1 = Worksheets("Dispo").Range("E13")
End if

Gruß Harald

Re: VBA-Fehlermeldung
17.03.2003 13:03:29
Nike

Hi,
mal so versuchen, als Ansatz:

Dim wksDispo As Worksheet
Dim wksStamm As Worksheet
Dim varFind As Variant
Set wksDispo = Worksheets("Dispo")
Set wksStamm = Worksheets("Stammdaten")
Suche1 = wksDispo.Range("E13")
Menge1 = wksDispo.Range("Q13")
Set varFind = wksStamm.Columns("A:A").Find(What:=Suche1, After:=ActiveCell, MatchCase:=False)
If Not isnothing(varFind) Then
varFind.Offset(0, 11).Select
varFind = varFind - Menge1
End If

Bye

Nike

Anzeige
Re: VBA-Fehlermeldung
17.03.2003 13:31:54
Jürgen

Hallo Harald,

Danke für die schnelle Antwort. Ich habe Deinen Code mit eingebaut (s. Beispiel unten), die Fehlermeldung erscheint aber immer noch. Irgend etwas scheint falsch zu sein. Kannst Du mir vielleicht noch einen Tip geben!?

Worksheets("Stammdaten").Activate
Columns("A:A").Select
Suche1 = Worksheets("Dispo").Range("E13")
Menge1 = Worksheets("Dispo").Range("Q13")
If IsEmpty(Worksheets("Dispo").Range("E16")) Then
Suche1 = ""
Else
Suche1 = Worksheets("Dispo").Range("E13")
End If
Selection.Find(What:=Suche1, After:=ActiveCell, MatchCase:=False).Activate
ActiveCell.Offset(0, 11).Select
ActiveCell = ActiveCell - Menge1


Anzeige
Re: VBA-Fehlermeldung
17.03.2003 13:40:33
Harald Kapp

Hallo Jürgen,
sorry, hab' mich wohl nicht klar ausgedrückt: Gemeint war natürlich, mein Code statt Dein Code, nicht zusätzlich. Außerdem gilt das Abfangen auch für alle anderen Zellen, die potentiell leer sein können. Also so (nur als Gerüst, vervollständigen müsstest Du selbst):

Gruß Harald

Re: VBA-Fehlermeldung
17.03.2003 14:24:25
Jürgen

Hallo Harald,

Danke, jetzt funzts !!

Gruß Jürgen

Re: VBA-Fehlermeldung
17.03.2003 14:28:17
Jürgen

Hallo Nike,

ich habe den Ansatz von Harald übernommen, er funktioniert.
Danke trotzdem für Deine Hilfe.

Gruß Jürgen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige