Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1372to1376
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

Wenn Zelle 'NV' enthält, dann führe Befehl nochmal

Wenn Zelle 'NV' enthält, dann führe Befehl nochmal
08.08.2014 12:31:16
Peter
Hallo zusammen,
nächster Schritt.
ich lasse meine Daten per Webaktualisierung einlesen.
Nun kann es vorkommen, daß die Daten nicht richtig oder vollständig eingelesen werden. Dann taucht in beispielsweise Zelle s2 ein Fehler "#NV" auf.
Ich möchte nun, daß für diesen Fall, die Daten nochmals aktualisiert werden, BEVOR kopiert werden soll.
kann man dies mit dieser Befehlszeile irgendwie lösen?
If IsError(Worksheets("Tabelle1").Cells("S2")) = "#NV" Then...?
Grüße
Peter
Sub kopieren0809()
With ActiveWorkbook
ActiveWorkbook.RefreshAll
.Worksheets("08-09").Range("d1:e30").Copy
.Worksheets("08-09").Range("g1").PasteSpecial Paste:=xlValues
End With
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle 'NV' enthält, dann führe Befehl nochmal
08.08.2014 12:46:31
Daniel
Hi
kannst du so prüfen und so oft ausführen, bis die Werte da sind:
dim rng as Range
Do
ActiveWorkbook.RefreshAll
On Error Resume Next
Set rng = Range(...).SpecialCells(xlcelltypeformulas, 16)
On Error Goto 0
Loop until rng is Nothing
hier dann dein Copy-Paste
ob die Werte einer Webabfrage als Formel oder als Festwert gelten, müsstest du mal prüfen, da bin ich mir jetzt nicht sicher.
Bei Formeln ist der Code: SpecialCells(xlcelltypeformulas, 16)
Bei Festwerten brauchst du: SpecialCells(xlcelltypeconstants, 16)
Gruß Daniel

Anzeige
AW: Wenn Zelle 'NV' enthält, dann führe Befehl nochmal
08.08.2014 13:00:19
Peter
Muß der Code dann so aussehen?
Sub kopieren0917300()
Dim rng As Range
With ActiveWorkbook
Do
ActiveWorkbook.RefreshAll
On Error Resume Next
Set rng = Range("09-1730").SpecialCells(xlCellTypeFormulas, 16)
On Error GoTo 0
Loop Until rng Is Nothing
.Worksheets("09-1730").Range("d1:e30").Copy
.Worksheets("09-1730").Range("g1").PasteSpecial Paste:=xlValues
ActiveWorkbook.Save
End With
End Sub
------
xlCellTypeFormulas, 16
steht die 16 für diesen spieziellen Fehler "#NV" ?

AW: Wenn Zelle 'NV' enthält, dann führe Befehl nochmal
08.08.2014 13:06:26
Daniel
Hi
das 16 steht für "Fehlerwert" und schließt alle Fehler mit ein (#NV, #Wert, #Div/0, #Zahl)
in den SpecialCells kannst du unterscheiden zwischen Zahl(1), Text(2), Wahrheitswert(4) und Fehlerwerten(16).
Kombinationen der Typen ergeben sich durch Additon der Zahlen (3 = Zahlen und Texte)
xlcelltypeformulas / xlcelltypeconstants unterscheidet zwischen Formel oder Festwert.
leider lässt sich das nicht kombinieren.
Code sieht gut aus, Testen kann ich es leider nicht, weil ich mich mit Webabfragen nicht auskenne.
aber, wenn du schon die WITH-Klammer mit dem ActiveWorkbook aufmachst, warum dann "ActiveWorkbook.RefreshAll" und nicht einfach nur ".RefreshAll" ?
Gruß Daniel

Anzeige
AW: Wenn Zelle 'NV' enthält, dann führe Befehl nochmal
08.08.2014 13:09:53
Peter
Hallo Daniel,
vielen Dank für Deine zahlreichen Ideen.:-) Muß sagen, das Forum hier gefällt mir ausgesprochen gut!!!
Mit dem Refreshall ohne Workbook...naja ich kannte das noch nicht und verstehe nur langsam die Zusammenhänge, was wann welcher Befehl bedeutet.
Naja...Schritt für Schritt.
Viele Grüße
Peter

AW: Wenn Zelle 'NV' enthält, dann führe Befehl nochmal
08.08.2014 13:15:41
Daniel
Du verwechselts da was!
natürlich steht das Workbook vor .RefreshAll.
Aber du hast doch die WITH-Klammer und dann verfährst du beim RefreshAll genaus wie nachher beim Kopieren und einfügen.
gruß Daniel

414 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige