Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1592to1596
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

Laufzeitfehler 13

Laufzeitfehler 13
04.12.2017 16:45:32
Norbert
Hallo Spezialisten
beim nachfolgenden Script folgt immer ein Laufzeitfehler 13
Beim Debuggen bleibt das Maskro immmer hier hängen:
Schlüssel = Quellblatt.Cells(i, 1).Value
Sub Formular_fuer_jeden_Datensatz_kopieren()
Dim Quellblatt As Worksheet, Zielblatt As Worksheet
Set Quellblatt = Worksheets("Berechnung")
Set Zielblatt = Worksheets("Adaption")
Dim Höhe As Integer, Breite As Integer, Abstand As Integer
Höhe = 27 ' Höhe des Formulars
Breite = 12 ' Breite des Formulars
Abstand = 2 ' Abstand zwischen 2 Formularen
Dim Formular As Range, Schlüssel As Double, i As Integer, Schlüsselzelle As Range
Set Formular = Zielblatt.Range(Cells(1, 1), Cells(Höhe, Breite))
Formular.Select ' nur zur Verdeutlichung
For i = 3 To Quellblatt.UsedRange.Rows.Count
Schlüssel = Quellblatt.Cells(i, 1).Value
Formular.Copy Formular.Offset((i - 2) * (Höhe + Abstand), 0)
Formular.Offset((i - 2) * (Höhe + Abstand), 0).Select ' nur zur Verdeutlichung
Set Schlüsselzelle = Formular.Offset((i - 2) * (Höhe + Abstand), 0).Cells(1).Offset(3, 1)
Schlüsselzelle.Select ' nur zur Verdeutlichung
Schlüsselzelle = Schlüssel
Next i
End Sub
Wie bringer ich den Fehler weg?
Danke für Hilfe
Gruss Norbert

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 13
04.12.2017 16:55:33
Daniel
Hi
was steht denn in der Zelle Quellblatt.Cells(i, 1)?
wie ist den die Variable Schlüssel deklariert?
der Fehler 13 wird normalerweise ausgeben, wenn du einer Variable, die nicht Variant ist, einen Fehlerwert aus einer Zelle zuweisen willst.
Probliers mal mit:
Schlüssel = Quellblatt.Cells(i, 1).Text
das wandelt den Fehlerwert in einen Text um und sollte das Problem mit Fehler 13 vermeiden.
oder deklariere Schlüssel als Variantvariable, wobei der Fehlerwert dann auch an anderer Stelle Probleme bereiten könnte.
Gruß Daniel
AW: Laufzeitfehler 13
05.12.2017 11:40:55
Norbert
Hallo Daniel
es erscheint der gleiche Fehler wie mit .Value
Gibt ves noch eine andere Alternative?
Gruss Norbert
Anzeige
AW: Laufzeitfehler 13
05.12.2017 14:47:02
Daniel
Hi
beantworte bitte meine Fragen!
Gruß Daniel
AW: Laufzeitfehler 13
05.12.2017 15:43:56
Name
Hallo Daniel
da ich kein Crack bin kann ich dir höchstens mit dem Anhang zeigen, was es mit der Quelldatei aufsich hat. Der Kopiervorgang im Zielblatt soll soweit ausgeführt werden, solange in der Spalte A ein Wert drin steht.
Vielleicht kannst du damit was anfangen
Gruss Norbert
Userbild
AW: Laufzeitfehler 13
05.12.2017 16:27:28
Daniel
Naja, man muss jetzt kein Crack sein, um zu überprüfen, welchen Wert eine Variable bei einem Fehlerabbruch hat.
Dazu muss man doch nur mit der Maus im Codeeditor über die Variable fahren, und der Variablenwert wird als Bubblehelp angezeigt (und das ist nur eine von mehreren Möglichkeiten)
Das ist eigentlich das erste was man macht, wenn ein Fehler auftritt.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 13
06.12.2017 08:15:12
Norbert
Hallo Daniel
der angezeigtew Wert ist 10082566 (entspricht dem Wert 17 auf dem Bild). Vielleicht noch ein Hinweis dazu, diese Werte werden mittels Bezug zu einem anderen Tabellenblatt übernommen.
Hilft das weiter?
Gruss Norbert
AW: Laufzeitfehler 13
06.12.2017 10:07:31
Daniel
Hi
Sicher?
ich würde vermuten, dass der Fehler auftritt, wenn i = 18 ist.
Da du die Werte in der Tabelle per Formel ausliest, steht in der Zelle A18 vermutlich eine Formel mit dem Ergebnis Leerstring (""). Das ist ein Text, welchen VBA nicht in eine Zahl umwandeln kann.
Da du aber den Zellwert einer Variablen zuweist, die als Zahl-Variable deklariert ist (Dim Schlüssel as Double) müsste diese Umwandlung erfolgen. Da das aber mit "" nicht geht, gibt's die Fehlermeldung 13, "Typenunverträglichkeit" (Text vs. Zahlenvariable)
Deine Tabelle ist ja aufgrund der Formeln wesentlich länger, als tatsächlich nutzbare Werte vorhanden sind (Bis Zeile 17).
Dein Schleifenendwert "Quellblatt.UsedRange.Rows.Count" gibt dir als Ergebnis die letzte Zelle mit Formeln, aber im Prinzip kannst du schon in Zeile 17 aufhören.
daher solltest du diese Prüfung einbauen und die Schleife abbrechen, wenn in Spalte A nur der Leerstring steht:

For i = 3 To Quellblatt.UsedRange.Rows.Count
If Quellblatt.Cells(i, 1) = "" Then Exit For
Schlüssel = Quellblatt.Cells(i, 1).Value
Next
Sollte die Schleife aber tatsächlich über alle Zeilen laufen, die die Formel enthalten auch wenn das Ergebnis in Spalte A der leerstring ist, müsstest du Schlüssel als Variant oder String deklarieren.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 13
06.12.2017 10:54:01
Norbert
Hallo Daniel
nun passt es - super vielen Dank nochmalls
Gruss Norbert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige