Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1532to1536
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

Problem mit Makro

Problem mit Makro
11.01.2017 14:28:31
Peter
Hallo Ihr Excelspezialisten,
ich habe leider ein kleines Problem, welches ich nicht weiss, wie ich dies lösen kann.
Mittels nachstehendem Makro fülle ich die Spalte G mit dem Datum aus einer anderen Tabelle.
Nun soll jedoch dies nur dort entstehen, wo kein Wert in der Zelle in Spalte A steht.
Da die Werte in Spalte A aus einer anderen Tabelle kommen mittels =wenn... befindet sich in der Spalte A von A2 bis A500 eine Formel.
Sub Datum_einfügen_SpalteG_Gesamtabrechnung()
Dim Zelle As Range
Dim Datum As String
Datum = Worksheets("Hilfstabelle").Range("W15").Value
Worksheets("Gesamtabrechnung").Activate
For Each Zelle In Range(Cells(2, 1), Cells(Range("A65536").End(xlUp).Row, 1))
If Zelle.Value > "" Then
Zelle.Offset(0, 6) = Datum
End If
Next Zelle
End Sub

Was muss bitte in o.a. Makro geändert werden, damit dies nur in den Zellen erfolgt, wo ein Wert steht.
Besten Dank für Eure Hilfe.
Gruss
Peter

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Makro
11.01.2017 14:53:28
ChrisL
Hi Peter
Sub Datum_einfügen_SpalteG_Gesamtabrechnung()
Dim Zelle As Range
With Worksheets("Gesamtabrechnung")
For Each Zelle In .Range(.Cells(2, 1), .Range("A65536").End(xlUp))
If Zelle.Value > "" Then Zelle.Offset(0, 6) = _
Worksheets("Hilfstabelle").Range("W15").Value
Next Zelle
End With
End Sub

N.b. Datum deklariert man meist mit Date ;)
cu
Chris
Problem mit Makro besteht weiter
11.01.2017 15:37:20
Peter
Hallo Chris,
danke für Deine Hilfe, aber leider macht Dein Makro das selbe wie meins.
Es geht darum, dass in der Spalte A von A2 bis A500 folgende Formeln vorhanden sind:
=WENN(ISTFEHLER(UmwandlungKopierer1!B2);"";UmwandlungKopierer1!B2)
Damit erkennt das Makro die Zellen in Spalte A nicht als leer. Und genau das ist mein Problem.
Das Makro soll nur dort Einträge vornehmen, wo die Werte "" sind nicht jedoch die Formeln.
Vielleicht wisst Ihr eine Lösung.
Gruss
Peter
Anzeige
AW: Problem mit Makro besteht weiter
11.01.2017 15:50:04
Crazy
Hallo
If Zelle.Value > ""
If Zelle.value größer nix?
MfG Tom
AW: Problem mit Makro besteht weiter
11.01.2017 15:57:09
Peter
Hallo Tom,
funktioniert leider auch nicht.
Das Problem ist die Formel in der Zelle. Wenn ich die Formel entferne geht es.
Aber diese Formel wird benötigt.
Wo liegt nur der Fehler?
Gruss
Peter
AW: Problem mit Makro besteht weiter
11.01.2017 15:58:08
Max2
Ist nicht getestet aber vielleicht sowas in der Art ?

For Each Zelle In Range...
If Zelle  "" Then
If Left(Zelle, 1) = "=" Then
GoTo Neachste
End If
End If
Naechste:
Next Zelle

AW: Problem mit Makro besteht weiter
11.01.2017 15:59:04
Crazy
Hallo
vielleicht so?
If Zelle.Value  ""
MfG Tom
Anzeige
AW: Problem mit Makro besteht weiter
11.01.2017 16:02:35
Max2
Habe diese Version gerade getestet
Mit "HasFormula" geht es, du überprüfst also einfach ob Zelle eine Formel hat und Falls ja geht er zur nächsten Zelle

Sub a()
Dim a As Worksheet
Dim Zelle As Range
Set a = ThisWorkbook.Sheets(1)
With a
For Each Zelle In Range(.Cells(1, 1), .Cells(10, 1))
If Zelle  "" Then
If Zelle.HasFormula Then
MsgBox Zelle.Address
GoTo Naechste
End If
End If
Naechste:
Next Zelle
End With
End Sub

AW: Problem mit Makro besteht weiter
11.01.2017 16:27:54
Peter
Hallo Max,
im Prinzip ist das mit dem Hinterfragen nach Formel der evtl. richtige Ansatz.
Aber es sind in A2:A502 überall Formeln.
Gruss
Peter
Anzeige
AW: Problem mit Makro besteht weiter
11.01.2017 16:09:09
ChrisL
Hi Peter
Du hast recht, die beiden Makros machen im Prinzip das Gleiche.
Ob...
Zelle > ""
oder
Zelle <> ""
... ist egal. Lässt sich auch mit Formel testen
=A2>"" (ergibt Wahr oder Falsch)
Ob das Ergebnis mittels Formel oder manueller Eingabe zustande kommt müsste auch egal sein, weil der Wert/Value (selbst wenn Value weggelassen wird, der Default ist bereits Value) abgefragt wird.
Bei mir funktionieren alle Varianten.
Mein Fazit: Der Fehler liegt anderswo und ich denke eine kleine Beispieldatei von dir würde das Problem schnell lösen.
cu
Chris
Anzeige
AW: Problem mit Makro besteht weiter
11.01.2017 16:20:14
Peter
Hallo Chris,
anbei Musterdatei:https://www.herber.de/bbs/user/110480.xlsm
Gruss
Peter
AW: Problem mit Makro besteht weiter
11.01.2017 16:32:48
Peter
Hallo Chris,
ich glaube ich habe den Fehler gefunden.
Sub testDatum1()
Dim Zelle As Range
Dim Datum As String
Datum = Worksheets("Hilfstabelle").Range("D2").Value
For Each Zelle In Range(Cells(1, 1), Cells(Range("A65536").End(xlUp).Row, 1))
If Zelle.Value > 0 Then
Zelle.Offset(0, 6) = Datum
End If
Next Zelle
End Sub

Der Fehler liegt in If Zelle.Value > 0 then nicht ""
Besten Dank für Eure Hilfe
Gruss
Peter
AW: Problem mit Makro besteht weiter
11.01.2017 17:10:25
ChrisL
Hallo Peter
Ja wenn der Wert null und nicht "" ist... :)
Trotzdem noch einmal den Hinweis zum Datentyp Datum. Auch wenn du die Zelle als Datum formatierst, überträgt dein Makro trotzdem Text (String). Teste mit
=ISTZAHL(G2)
Vielleicht egal, aber oft holen einem solche Unachtsamkeiten später wieder ein.
cu
Chris
Anzeige
AW: Problem mit Makro besteht weiter
11.01.2017 17:14:41
Peter
Hallo Chris,
danke für Deinen Hinweis.
Werde ich überprüfen.
Dann müsste ich wohl das Datum als Zahl in ein Datum umwandeln.
Oder kennst Du da eine Lösung die ich gleich einbringen kann.
Gruss
Peter
AW: Problem mit Makro besteht weiter
11.01.2017 17:50:38
ChrisL
Hi Peter
Nimm den Code den ich vorgeschlagen hatte (mit Anpassung wegen null), da wird der Wert direkt übertragen.
Oder deklariere Dim Datum As Date. Oder du wandelst den String in ein Datum um...
Zelle.Offset(0, 6) = CDate(Datum)
Und noch etwas :)
Cells(Range("A65536").End(xlUp).Row, 1)
ist das Gleiche wie..
Range("A65536").End(xlUp)
cu
Chris
Anzeige
AW: Problem mit Makro besteht weiter
12.01.2017 08:56:38
Peter
Hallo Chris,
ich habe jetzt das bestehende, funktionierende Makro geändert.
Ich habe Dim Datum As Date deklariert mit CDate(Datum). Ausserdem habe
ich Range("A65536").End(xlUp) geändert.
Nochmals vielen, vielen Dank für Deine Hilfe.
Gruss
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige