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

Fehlermeldung 13

Fehlermeldung 13
06.06.2015 18:32:12
Fabi
Hallo Forum,
ich verzweifle gerade ein wenig
ich suche in eine Zeile, die letzte Spalte, die beschrieben ist,
Spalte_letzte = .Cells(3, 17).End(xlToLeft).Column

Nun möchte ich prüfen, ob in dieser Spalte, in dem Bereich „Zeile 7 bis Zeile 71“ ein Wert steht, und da kommt es zu einer Fehlermeldung (13)
If .Range(.Cells(7, Spalte_letzte), .Cells(71, Spalte_letzte)).Value = 0 Then

Wieso kommt es hier zu diesem Fehler?
Was mache ich falsch?
Danke für eure Hilfe
Fabi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung 13
06.06.2015 18:46:05
Matthias
Hallo
Das ist ja nur die Hälfte vom Code.
Wenn Du mit
.Cells(3, 17)
oder
.Range(Bereich)
arbeitest musst Du auch eine Referenz zu einem Objekt haben.
z.B.
With Worksheets("Tabelle1")
'Dein Code
End with

An Spekulationen und/oder Rätseln beteilige ich mich nicht mehr.
Gruß Matthias

AW: Fehlermeldung 13
06.06.2015 18:57:53
Fabi
Hallo Matthias
so sieht es zur zeit aus ( ist aber nur ein Aussug davon)
sub versuch()
Dim wks As Worksheet
Dim Spalte_letzte As Long
Set wks = ActiveSheet
with wks
Spalte_letzte = .Cells(3, 17).End(xlToLeft).Column
code code code....
dann min Problem zeile
If .Range(.Cells(7, Spalte_letzte), .Cells(71, Spalte_letzte)).Value = 0 Then
dannn code code code.......
danke Fabi

Anzeige
AW: Fehlermeldung 13
06.06.2015 19:13:04
Daniel
Hi
das funktioniert nicht, weil
.Range(.Cells(7, Spalte_letzte), .Cells(71, Spalte_letzte)).Value 64 verschiedne Werte sind und 0 ist nur ein Wert.
gleichzeitig viele Werte mit einem einzigen Wert vergleichen so dass ein sinnvolles WAHR oder FALSCH dabei rauskommt.
in dem Bereich von Zeile 7 bis Zeile 71 können nämlich
- alle Werte = 0 sein
- kein Wert = 0 sein
- eine beliebige Anzahl zwischen alle und keine = 0 sein.
etwas technischer ausgedrückt: du versuchst hier ein Array (alle Werte von Zeile 7 bis Zeile 71) mit einem Einzelwert zu vergleichen und das kann VBA nicht.
Gruß Daniel

Anzeige
AW: Fehlermeldung 13
06.06.2015 19:46:45
Fabi
Hallo,
danke für deine Antwort
so habe ich es auch verstanden, warum dies nicht funkrionieren kann :-(
jetzt habe ich es versucht es anders zu lösen, und man siehe da es funktioniert
Lösung mit

Application.WorksheetFunction.Sum
vielleicht gibt es noch eine andere Lösung, aber so funktioniert es erst einmal
danke fabi

AW: Fehlermeldung 13
07.06.2015 14:37:43
Daniel
HI
hängt halt auch davon ab, was man genau prüfen will und wie die Daten vorliegen.
um zu prüfen, ob alle Zellen wirklich leer sind:
Worksheetfunction.CountA(...) = 0
um zu prüfen, ob alle Zellen den Wert 0 enthalten:
Worksheetfunction.CountIf(..., "0") = 0
Worksheetfunction.Sum erkennt keine Texte und auch wenn -1 und +1 in zwei Zellen stehen würden, wäre die Summe 0.
Gruß Daniel

Anzeige
AW: Fehlermeldung 13
06.06.2015 19:14:42
Matthias
Hallo
Ich kann Dir nich ganz folgen, Fabi
Wenn Du Dich auf ActiveSheet beziehst, brauchst Du kein With
da sich Cells und Range immer aufs ActiveSheet bezieht
Lad die Mappe hoch, dann kann man das prüfen
Gruß Matthias

AW: Fehlermeldung 13
06.06.2015 19:18:54
Daniel
Hi Matthias
auch wenn man sich auf das ActiveSheet bezieht, ist sinnvoll so zu programmieren, denn:
- wenn man mit mehren Blättern arbeitet, könnte es sehr schnell sein, dass du dich nicht mehr auf das aktive, sondern auf ein bestimmtes, nicht aktives Blatt beziehen willst und dann ist so der Änderungsaufwand gering, weil du nur an einer Stelle im Code das ändern musst
- wenn du mehrere Blätter hast und das Programm im Einzelstep testest, kann es schnell passieren, dass du von Hand das aktive Sheet wechselst dann laufen deine Befehle auf das falsche Blatt.
Gruß Daniel

Anzeige
AW: Fehlermeldung 13
06.06.2015 19:40:09
Matthias
Hallo Daniel
Meine Referenz läuft kaum aufs falsche Blatt!
Warum ich auf Deinen Beitrag so reagiere liegt in der Vergangenheit, Daniel
Ich brauch niemanden der versucht mich "vorzuführen", wie Du es gatan hast!
Du hast einamal versucht mich vorzuführen.(Vergessen?)
Ich kann zwar verzeihen aber ich vergesse NIE
Ich zweifel nicht an Deiner Excel/VBA-Kompetenz, aber für mich spielen andere Faktoren auch eine Rolle!
Eigentlich ist es sehr schade das solche "Köpfe" immer wieder aneinandergeraten.
Ich denke fast das Du dir der damaigen Sache gar nicht mehr bewusst bist.
Lass es jetzt einfach dabei bleiben, ok ?
Du musst nicht immer das letzte Wort haben.
Ich schätze Dich als Exce/VBA-Experte, zerstöre es bitte nicht!
Gruß Matthias

Anzeige
AW: Fehlermeldung 13
07.06.2015 08:43:56
Luschi
Hallo Daniel,
mit ActiveSheet zu arbeiten ist auch in Deinem Fall ein Tanz auf der Rasierklinge. Egal wer/wie/was die Umstellung während des Prozeßdurchlaufs erwirkt, es wird mit oder ohne ActiveSheet eine Referenz auf das falsche Tabellenblatt.
Wenn ich weiß, beim Einsprung in die Prozedur ist ActiveShett die Tabelle, die ich meine/erwarte, dann mache ich das so:
Dim ws As Worksheet
Set ws = ActiveSheet
'ansonsten
Set ws = TabelleXYZ
ws.Range(...)
ws.Cells(...)
Da kann dann kommen was will, die Referenz steht/sitzt wie das Haar der Geschäftsfrau beim Flugzeugwechsel in der Werbung.
Gruß von Luschi
aus klein-Paris

Anzeige
Ziemlich genau nach VBE-Hilfe-Empfehlung! ;-) orT
08.06.2015 01:34:59
Luc:-?
Gruß, Luc :-?

AW: Ziemlich genau nach VBE-Hilfe-Empfehlung! ;-) orT
08.06.2015 04:20:39
Luschi
Hallo Luc,
kennst Du noch Jeemanden, der die Vba-Hilfe liest, wenn er glaubt, Vba-Probleme zu haben?
fragt sich Luschi
aus klein-Paris

Tja, ab 15/365(2013) haben die Nichtleser ...
08.06.2015 04:29:29
Luc:-?
…jetzt ja 'ne tolle Ausrede, Luschi… ;-]
Morrn, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige