Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Range().Value Problem

Forumthread: Range().Value Problem

Range().Value Problem
06.08.2015 12:59:19
Dennis
Hallo liebes Forum,
ich habe folgenden Code:
Private Sub CommandButton1_Click()
Dim a As String
Dim b As Integer
Dim c As Integer
Dim d As String
Dim e As Integer
Dim f As Integer
Dim Index As Integer
a = Mid(TextBox1.Text, 1, 1)
b = Mid(TextBox1.Text, 2, 2)
c = Asc(a) - 64
d = Mid(TextBox2.Text, 1, 1)
e = Mid(TextBox2.Text, 2, 2)
f = Asc(d) - 64
With Range(Cells(b, c), (Cells(e, f)))
If Range(Cells(b, c), (Cells(e, f))).Value = "" Then
If Range(Cells(b, c), (Cells(e, f))).Rows.Count = 5 Or _
Range(Cells(b, c), (Cells(e, f))).Columns.Count = 5 Then
.Value = "#"
.Font.Bold = True
.Interior.Color = vbYellow
Else
MsgBox "Bitte Abstand von 5 Zeilen/Spalten wählen", vbOKOnly &  vbInformation, " _
Hinweis"
Exit Sub
End If
Else
MsgBox "Diese Zelle ist bereits belegt", vbOKOnly & vbInformation, "Hinweis"
Exit Sub
End If
End With
Range(Cells(b, c), (Cells(e, f))).Select
For Index = xlEdgeLeft To xlEdgeRight
With Selection.Borders(Index)
.LineStyle = xlDouble
.Weight = xlThick
End With
Next Index
End Sub
Ich lese aus einer Userform dort eigegebene Zellen aus und wähle sie über diese Funktion dann an und fülle sie. Funktioniert soweit super.
Jetzt möchte ich aber noch die Probe einfügen, ob eine der Zellen bereits einen Wert hat. Falls ja, soll eine Fehlermeldung kommen.
Dass der Code so nicht funktioniert, ist mir bewusst, leider finde ich keine Lösung. Ich habe die nicht funktionierenden Schnipsel fett markiert, ohne sie läuft der Code (aber eben ohne die zusätzliche Abfrage).
Vielen Dank,
Dennis

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range().Value Problem
06.08.2015 13:06:20
hary
Moin Dennis
if Application.CountA(Range(Cells(b, c), (Cells(e, f)))) = 0

gruss hary

Auch dir..
06.08.2015 14:44:34
Dennis
..vielen Dank hary :)
Funktioniert nun einwandfrei.

AW: Range().Value Problem
06.08.2015 13:09:03
Rudi
Hallo,
wozu der With-Rahmen wenn du ihn nicht nutzt?
  With Range(Cells(b, c), (Cells(e, f)))
If WorksheetFunction.CountA(.Cells) = 0 Then
If .Rows.Count = 5 Or .Columns.Count = 5 Then
.Value = "#"
.Font.Bold = True
.Interior.Color = vbYellow
Else
MsgBox "Bitte Abstand von 5 Zeilen/Spalten wählen", _
vbOKOnly & vbInformation, " Hinweis """
Exit Sub
End If
Else
MsgBox "Diese Zellen sind bereits belegt", _
vbOKOnly & vbInformation, "Hinweis"
Exit Sub
End If
End With

Gruß
Rudi

Anzeige
Danke Rudi
06.08.2015 13:25:06
Dennis
Danke dir Rudi!
Ich habe da nachträglich dran rumgebastelt und dann komplett übersehen, dass ein With-Rahmen vorhanden ist.
So sieht das schon viel besser aus :)
Liebe Grüße

usability?
06.08.2015 17:10:16
Michael
Hallo zusammen,
als Anwender mag ich es nicht besonders, wenn ich Eingaben machen kann, die dann mit einer Meldung quittiert werden á la: "nein, gib bitte was anderes ein".
Es kommt natürlich auf den Zusammenhang an, aber wäre es nicht denkbar, nur die 1. Textbox auszuwerten und als obere, linke Ecke zu verwenden?
Letztlich muß nur eine Zeile geändert werden...
With Range(Cells(b, c), (Cells(b+4, c+4)))

... und die nicht benutzen Variablen, Abfragen usw. kann man rauswerfen.
Schöne Grüße,
Michael

Anzeige
AW: usability?
06.08.2015 17:45:56
Dennis
Hallo Michael,
deine Anmerkung macht Sinn, in meinem Beispiel kann der Benutzer aber auch eingeben, dass die Range nach unten verläuft und nicht nur nach rechts. Somit muss ich das leider so abfragen :)
Gruß,
Dennis
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18