4.9k Aufrufe
Gefragt in Tabellenkalkulation von johannes94 Mitglied (429 Punkte)
Hallo,

warum kommt bei dem Makro

Sub Test()
If IsNumeric(Cells(1, a)) Then
Range("A2").Value = "ja"
Else
Range("A2").Value = "nein"
End If


End Sub


die Fehlermeldung "Anwendungs- oder objektdefinierter Fehler"?

Wie müsste das Makro richtig lauten?

15 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Johannes,

Du hast die Variable a weder deklariert noch ihr einen Wert
zugewiesen.
So wäre es richtig

Option Explicit

Sub Test()
Dim a As Integer
a = 5
If IsNumeric(Cells(1, a)) Then
Range("A2").Value = "ja"
Else
Range("A2").Value = "nein"
End If
End Sub


Damit wird die Zelle E1 geprüft.

Falls Du mit Cells(1, a) die Zelle A1 meinst, müsste der Code
so lauten

Option Explicit

Sub Test()
If IsNumeric(Cells(1, 1)) Then
Range("A2").Value = "ja"
Else
Range("A2").Value = "nein"
End If
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von johannes94 Mitglied (429 Punkte)
Hallo Rainer,
zweiteres war die Lösung, (mal wieder) danke.
Ich wusste nicht, dass der Spaltenindex auch numerisch angegeben wird.

Noch eine Frage, da ich mit dieser Formel doch nicht so, wie ich es erhofft hatte, mein Problem lösen konnte:


Es soll festgestellt werden, ob in zwei Zeilen gleiche Werte vorkommen, z.B. soll Excel melden, wenn in Zeile 1 unter anderem "384" steht und in Zeile 2 in anderer Spalte "123843". Dann soll eine Meldung erscheinen.

Vielen Dank,
Johannes
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Johannes,

falls Du es mt VBA machen willst benutze doch Find.

Gruß Hajo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Johannes,

da ich mehr mit Formel umgehe, würde ich Dir auch eine Formel empfehlen.
Folgende Matrixformel löst das Problem

=WENN(SUMME((LÄNGE(A2:Z2)-LÄNGE(WECHSELN(A2:Z2;D1;"")))/LÄNGE(D1));"vorhanden";"")

In D1 steht hierbei die gesuchte Zahl (384) und in einer beliebigen Zelle des Bereiches A2:Z2 die zu findende Zahl (123843).

Die Formeleingabe ist mit Strg+Shift+Enter zu bestätigen.

Gruß
Rainer
0 Punkte
Beantwortet von johannes94 Mitglied (429 Punkte)
Hallo Hajo,
mit VBA wäre ok, mit Formeln auch.
Da ich kaum VBA-Befehle kenne, wäre ich für einige Tipps dankbar.
Ich weiß z.B. nicht, wie ich mit find alle Elemente vergleichen soll.

Viele Grüße,
Johannes
0 Punkte
Beantwortet von johannes94 Mitglied (429 Punkte)
Hallo Rainer,
die Formel werde ich gleich ausprobieren!
Danke,
Johannes
0 Punkte
Beantwortet von johannes94 Mitglied (429 Punkte)
Hallo Rainer,
eigentlich sollten alle Werte aus der ersten Zeile mit denen aus der zweiten verglichen werden.
Wie geht das?
Viele Grüße,
Johannes
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
0 Punkte
Beantwortet von johannes94 Mitglied (429 Punkte)
Hallo Hajo,
Zitat aus deinem Vorschlag:
in der 1. Spalte ein bestimmtes Suchkriterium steht UND in der 2. Spalte ein weiteres, versagt ZÄHLENWENN.


Das passt also leider nicht.
Trotzdem danke für den Versuch :-)
Johannes
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Johannes,

da habe ich mich versehen.

Gruß Hajo
...