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

Die Variable auf Wert prüfen

Die Variable auf Wert prüfen
Daniel
Hallo Excel-Freunde
Ich bin kurz vor dem Verzweifeln, und sehe meinen Fehler nicht:
Ich gebe über folgenden Code einen Range ein und gebe dieser Variablen (RngKey) einen Wert zu.
Falls "A2" nicht leer ist, ist es ein Bereich "X", ansonsten halt "A1". In dieser Zelle steht der Wert "Termine". Aus meiner Sicht also in diesem Fall RngKey = "Termine":
ThisWorkbook.Worksheets("KeyWatcher").Activate
If ActiveSheet.Range("A2") "" Then
With ActiveSheet
ZKey = Cells(Rows.Count, 1).End(xlUp).Row
Set RngKey = .Range(Cells(2, 6), Cells(ZKey, 6))
End With
For Each mycell In RngKey
mycell.FormulaR1C1 = "=RC[-5]&RC[-4]"
Next
Else
Set RngKey = ThisWorkbook.Worksheets("KeyWatcher").Range("A1")
End If

Später im Code möchte ich diese variable quasi auslesen und entsprechend geht es dann weiter:
Worksheets("KeyWatcher").Activate
If RngKey "Termine" Then
With Worksheets("KeyWatcher").Range(Cells(2, 6), Cells(ZKey, 6)).ClearContents
End With
End If
Range("A1").Activate

Doch das führt zu "Laufzeitfehler 13, Typenunverträglich"
Was mache ich falsch?
Besten Dank für Eure Hilfe
Grüsse aus der Schweiz
Daniel

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Die Variable auf Wert prüfen
10.02.2011 17:56:08
ransi
Hallo
welchen Wert hat jtzt ZKey ?
With Worksheets("KeyWatcher")
.Range(.Cells(2, 6), .Cells(ZKey, 6)).ClearContents
End With
ransi
AW: Die Variable auf Wert prüfen
10.02.2011 18:23:03
Gerold
Hallo Daniel
"RngKey" markiert noch auf einen größeren Bereich statt einer Zelle
(Set RngKey = .Range(Cells(2, 6), Cells(ZKey, 6)))
Mfg Gerold
Rückmeldung wäre nett.
AW: Die Variable auf Wert prüfen
10.02.2011 19:19:25
Daniel
Hallo Ransi
Hallo Gerold
Erst mal vielen Dank für Eure Unterstützung
@Ransi: in meiner Test-Tabelle hat Zkey den Wert 3. Der ist aber variabel, je nach Anzahl benutzer Zeilen.
@Gerold: Du hast recht - der Bereich ist grösser. Ich aber glaube, dass sofern keine Einträge in der Tabelle sind, dieser Bereich durch die if-Anweisung sich auf eine einzelne Zelle (A1) beschränkt. Oder sehe ich das falsch?
Ich werde für Heute Feierabend machen, melde mich allenfalls also erst Morgen wieder.
Nochmals besten Dank & einen schönen Abend
Liebe Grüsse
Daniel
Anzeige
AW: Die Variable auf Wert prüfen
10.02.2011 19:45:55
Gerold
Hallo Daniel
Ich weiß ja nicht was für ein Code da noch zwischen liegt,
aber wenn ich das so sehe zeigt "RngKey" wenn A2 ""
auf Spalte 6 zeile 2 bis ZKey
(Set RngKey = .Range(Cells(2, 6), Cells(ZKey, 6)))
danach werden die Formeln eingefügt
und "RngKey" wird nicht verändert.
Mfg Gerold
Rückmeldung wäre nett.
AW: Die Variable auf Wert prüfen
11.02.2011 11:20:45
Daniel
Hallo Gerold
Das ist richtig. Wenn die Zelle A2 in diesem Tabellenblatt nicht leer ist, setzt er den RngKey in der Spalte 6. Die Anzahl Zeilen entsprechend der Anzahl benutzter Zeilen. Für den Fall, dass aber A2 leer ist, setzt er den Range auf A1. Denn wenn A2 leer ist, bedeutet das für mich in diesem Fall, dass die ganze Tabelle leer ist.
Wenn ich nun bei leerer Tabelle mit Einzelschritten das Makro ablaufen lasse, kann ich bei Drüberfahren im Kommentar erkennen, dass RngKey = "Termine" ist.
Und in diesem Fall funktioniert auch der zweite Teil des Makros, sprich die Anweisung .clearcontents wird ignoriert.
Eben habe ich festgestellt, dass wenn sich RngKey über nur eine Zeile zieht (das wäre dann "F2") funktioniert es auch
Doch wenn RngKey über mehrere Zeilen hinweg gesetzt wird, bleibt er mit der Fehlermeldung hängen. Und das verstehe ich nicht. RngKey ist doch in diesem Moment auch ungleich "Termine".
Liebe Grüsse aus der Schweiz
Dani
Anzeige
AW: Die Variable auf Wert prüfen
11.02.2011 17:51:12
Gerold
Hallo Daniel
Betrifft
Worksheets("KeyWatcher").Activate
If RngKey "Termine" Then
With Worksheets("KeyWatcher").Range(Cells(2, 6), Cells(ZKey, 6)).ClearContents
End With
End If
Wenn A1 = Termine und A2 , A3,... ""
ist ergibt "If RngKey "Termine" Then" diese Fehlermeldung
da RngKey mehr als eine Zeile
eventuell vorher Testen ob rngkey.Count = 1
Mfg Gerold
Rückmeldung wäre nett.
AW: Die Variable auf Wert prüfen
12.02.2011 11:59:27
Daniel
Hallo Gerold
Ja genau, das ist es. Wenn "RngKey.count = 1 funktionierts, wenn ">1" nicht mehr.
Ich habe in der Zwischenzeit eine andere Lösung gefunden, von dem her ist mein Problem gelöst.
Dennoch bleibt - die vielleicht etwas naive Frage :-) - nach dem Warum. Aus meiner Sicht ist RngKey dennoch ungleich "Termine", selbst wenn mehrere Zeilen betroffen sind.
Oder geht das grundsätzlich nicht, sobald ein Range mehrere Zellen einschliesst?
Wie dem auch sei, ich danke Dir vielmals für Deine Zeit und Deine Hilfe
Liebe Grüsse aus der Schweiz
Daniel
Anzeige
AW: Die Variable auf Wert prüfen
12.02.2011 13:33:30
Gerold
Hallo Daniel
Bei 2 oder mehr Zeilen
wir aus "RngKey " ein Array
(RngKey(1) RngKey(2) RngKey(3) ....)
bei einer Zeile nicht.
Mfg Gerold
Rückmeldung wäre nett.
AW: Die Variable auf Wert prüfen
12.02.2011 14:52:14
Daniel
Hallo Gerold
OK, jetzt ich habe ich es verstanden!
Ich danke Dir nochmal vielmals für Deine Hilfe
Liebe Grüsse & ein schönes Wochenende
Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige