Microsoft Excel

Herbers Excel/VBA-Archiv

Zelle.Value

Betrifft: Zelle.Value
von: beat
Geschrieben am: 19.04.2003 - 16:13:38

Hi

ich arbeite mit einer userform, auf der ich mittels spinbuttons eine tabelle meinen bedürfnissen anpasse, d.h. anzahl spalten, anzahl zeilen etc. nach eingabe der daten prüfe ich mit folgendem befehl, welche zellen leer sind:

If Zelle.Value = "" Then

wenn ich der tabelle spalten zufüge, die leer bleiben, funktioniert alles, wenn ich aber zeilen zufügen und wenn diese leer bleiben, so erscheint nach dem oben aufgeführten befehl die fehlermeldung:

Laufzeitfehler '13' (Typen unverträglich)

hat jemand eine idee an was das liegt (ich habe die zellen überprüft und die formatierung etc. ist überall gleich) ??????

danke zum voraus und gruss

beat


  

Re: Zelle.Value
von: Ramses
Geschrieben am: 19.04.2003 - 16:19:33

Hallo Beat,

Dann hast du vermutlich ein Variablen-Problem, d.h. eine Variable ist falsch deklariert.
Aber ohne Code ist das schwer nachzuvollziehen.
Zeig doch mal den Code, dann finden wir sicher eine Lösung.

Gruss Rainer

  

Re: Zelle.Value
von: beat
Geschrieben am: 19.04.2003 - 16:37:56

hallo rainer

den ganzen code hier aufzuführen wäre etwas viel (> 200 zeilen), deshalb hier nur der betreffende abschnitt:

Dim Zelle As Variant

If Worksheets("Positionen").Range("E45") = "Wahr" Then
For I = 1 To APro
For J = 5 To 4 + AVer
'Anzahl leere Zellen ermitteln
Range(Cells(ReOb + ((I - 1) * AEin), J), Cells(ReOb + ((I - 1) * AEin + (AEin - 1)), J)).Select
leer = 0
For Each Zelle In Selection
If Zelle.Value = "" Then
leer = leer + 1
End If
Next Zelle
'Summe aller Peakflächen dividiert durch AEin - leer
Cells(KMiUn + I, J).Formula = "=(SUM(R" & ReOb + ((I - 1) * AEin) _
& "C" & J & ":R" & ReOb + ((I - 1) * AEin + (AEin - 1)) & "C" & J & ")) / " & AEin - leer
Next J
Next I
End If


gruss beat

  

Re: Zelle.Value
von: Ramses
Geschrieben am: 19.04.2003 - 16:41:52

Hallo Beat

deklarier mal

Dim Zelle As Range

Sollte dann gehen.

Gruss Rainer

  

Re: Zelle.Value
von: beat
Geschrieben am: 19.04.2003 - 16:48:27

hallo rainer

erhalte mit

dim zelle as range

die gleiche fehlermeldung

beat

  

Re: Zelle.Value
von: Ramses
Geschrieben am: 19.04.2003 - 17:09:33

Hallo Beat,

Setze mal einen Haltepunkt an diese Zeile

Range(Cells(ReOb + ((I - 1) * AEin), J), Cells(ReOb + ((I - 1) * AEin + (AEin - 1)), J)).Select

Wenn der Code dann angehalten wird, schau mal in der Tabelle welcher Bereich tatsächlich markiert ist.
Der Code funktioniert. Das habe ich gerade getestet. Allerdings mit fiktiven Zahlen


Sub Check()
APro = 5
Aver = 7
ReOb = 5
Aein = 5
If Worksheets("Positionen").Range("E45") = "Wahr" Then
    For I = 1 To APro
        For J = 5 To 4 + Aver
            'Anzahl leere Zellen ermitteln
            Range(Cells(ReOb + ((I - 1) * Aein), J), Cells(ReOb + ((I - 1) * Aein + (Aein - 1)), J)).Select
            leer = 0
            For Each Zelle In Selection
                If Zelle.Value = "" Then
                    leer = leer + 1
                End If
            Next Zelle
            'Summe aller Peakflächen dividiert durch AEin - leer
            'Cells(KMiUn + I, J).Formula = "=(SUM(R" & ReOb + ((I - 1) * Aein) _
            '& "C" & J & ":R" & ReOb + ((I - 1) * Aein + (Aein - 1)) & "C" & J & ")) / " & Aein - leer
        Next J
    Next I
End If
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16

Gruss Rainer

  

Re: Zelle.Value
von: beat
Geschrieben am: 19.04.2003 - 18:03:20

hallo rainer

es ist der richtige bereich markiert ?????

da dieses problem anscheinend nicht auf die schnelle gelöst werden kann, versuche ich die prüfung auf leere zellen anders durchzuführen. ich danke dir trotzdem für deine unterstützung.


gruss
beat