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

Range().Value Problem

Range().Value Problem
06.08.2015 10: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

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

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

gruss hary

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

AW: Range().Value Problem
06.08.2015 11: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 11: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 15: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 15: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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige