online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon jojo5 vom 03.07.2020, 00:07 Options

VBA-Code funktioniert nicht mehr

Hallo,

in meinem Excel-VBA-Script rufe ich an einer Stelle ein Modul auf (hier: "test"), welches dafür sorgt, dass - abhängig von einer "1" in einer bestimmten Spalte - verschiedene Felder in der jeweiligen Zeile kopiert werden. Hier ein Testmodul, das anstelle der Kopier-Zeilen eine (die zweite) MsgBox enthält (die erste MsgBox dient mir nur zur Überprüfung, ob überhaupt rein gesprungen wird):

Sub test()
Dim myReporting_taeglich_Quelle As Range
Dim myReporting_taeglich_Ziel As Range

Set myReporting_taeglich_Quelle = Range("ExcName_Reporting_taeglich_Quelle")
Set myReporting_taeglich_Ziel = Range("ExcName_Reporting_taeglich_Ziel")

MsgBox "test"

SpalteQuelle = Range(myReporting_taeglich_Quelle.Address).Column
SpalteZiel = Range(myReporting_taeglich_Ziel.Address).Column

intLetzteZeile = Sheets("Auswertung FM-DB-Int").Cells(Rows.Count, SpalteQuelle - 1).End(xlUp).Row
For intZaehler = intLetzteZeile To 108 Step -1
If Cells(intZaehler, SpalteZiel + 6) = "1" Then
MsgBox intZaehler & vbCrLf & Cells(intZaehler, SpalteZiel + 6)
End If
Next intZaehler
End Sub

Dies lief mehrere Monate gut. Inzwischen finden die Kopieraktionen aber nicht mehr statt, obwohl in der jeweiligen Zelle eine "1" steht und definitiv nach "test" gesprungen wird. Aus irgend welchen Gründen wird die "1" nicht mehr als "1" erkannt und die Kopieraktionen bleiben aus.

Hat jemand eine Ahnung, warum so etwas "von heute auf morgen" nicht mehr funktioniert?

Nach vielen Tests habe ich keine Lösung und auch keine Ideen mehr, was ich noch versuchen kann.

Vielen Dank schon mal
Jojo


Antwort schreiben

Antwort 1 von Kauz vom 03.07.2020, 05:36 Options

Hallo Jojo

das Einzige was mir dazu einfällt, wäre ein Formatproblem.

Also ein Unterschied zwischen einer 'echten' Eins und einem Textinhalt "1".

Ich meine, VBA kann bei Inhaltsabfragen in der Richtung auch ziemlich 'stur' sein.

Gruß
Andreas

Antwort 2 von jojo5 vom 03.07.2020, 07:47 Options

Hallo Andreas,

danke für die Antwort - aber das habe ich schon ausgetestet. Daran liegt es nicht.

Was ich aber noch vergessen habe (und was dieser Vermutung ebenfalls widerspricht): Wenn ich ausschließlich dieses Modul starte, funktioniert es einwandfrei ...

Wenn ich jedoch den gesamten VBA-Code laufen lasse, geht er - wie ich oben geschrieben habe - definitiv zwar in dieses Modul rein (mit "Call test"), stellt dann aber nicht fest, in welchen Zellen eine 1 steht. Ich habe auch den Modulaufruf an die erste Stelle des VBA-Codes gesetzt - negativ. Außerdem habe ich den Inhalt des Moduls "test" direkt in den VBA-Code kopiert - negativ.

Hoffentlich hat von euch noch jemand eine Idee - und wenn's "nur" weitere Testmöglichkeiten sind.

Viele Grüße
Jojo

Antwort 3 von jojo5 vom 03.07.2020, 09:07 Options

Hallo,

an alle, die vielleicht ein ähnliches Problem haben: Ich hab' die Ursache gefunden, juhu!

Also: Aus Performancegründen habe ich kürzlich meinen VBA-Code so umgestellt, dass keine selects mehr enthalten sind. Und genau da habe ich den Fehler selbst eingebaut. Denn mit dem Befehl

For intZaehler = intLetzteZeile To 108 Step -1
If Cells(intZaehler, SpalteZiel + 6) = "1" Then

sucht er in dem Tabellenblatt, in dem er sich gerade befindet nach der Zelle mit der 1. Und das war nicht das gewünschte Tabellenblatt (vor der Umstellung hatte ich dieses Tabellenblatt explizit selektiert).

D.h. mit der simplen Ergänzung

If Sheets("Auswertung FM-DB-Int").Cells(intZaehler, SpalteZiel + 6) = "1" Then

funktioniert alles wie vorgesehen. Ufffff

Vielleicht hilft mein stundenlanges Suchen wenigstens jemandem von euch.

Viele Grüße
Jojo

Ähnliche Themen

Excel schließen (VBA)
Jugo  15.03.2007 - 311 Hits - 1 Antwort

VBA Syntaxfehler die 2.
danielG  20.07.2007 - 27 Hits - 2 Antworten

VBA Code eingeben/ wie ?
MaKa  07.10.2007 - 90 Hits -

VBA-Editor öffnen und schließen
maxim66  14.03.2008 - 98 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026