Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

per Makro markierten Bereich auslesen

Betrifft: per Makro markierten Bereich auslesen von: Oliver
Geschrieben am: 30.06.2008 09:40:10

Hallo allerseits,

ich habe einen bestimmten Bereich in einer Excel-Tabelle markiert. Zusätzlich gibt es ein Command-Button, der Einträge in diesen markierten Bereich vornimmt. Wenn aber in diesem Bereich ein bestimmter Wert steht (z.B. "Genehmigt"), so soll dieser nicht überschrieben werden.
Hier mein bisheriger Code für den Command-Button:

Private Sub CommandButton1_Click()
' Test
    With Selection.Interior
        .ColorIndex = 4
        .Pattern = xlSolid
        Selection.Formula = "Antrag"
    End With
End Sub



Wie kann ich aus dieser AUswahl "Selection.Interior" die Felder ausgrenzen, in denen "Genehmigt" steht.
Es würde auch vollkommen ausreichen, dass eine Fehlermeldung erscheint, falls in einer der ausgewählten Zellen "genehmigt" steht. Etwa in dieser Art:
MsgBox "Mindestens ein Feld ist bereits genehmigt - eine weitere Bearbeitung ist nicht möglich", vbCritical, "Achtung:"

Über einen Vorschlag würde ich mich sehr freuen.
Viele Grüße
Oliver

  

Betrifft: AW: per Makro markierten Bereich auslesen von: Mathias
Geschrieben am: 30.06.2008 10:02:32

Hallo,

wie wär´s damit:

Dim cell As Range

For Each cell In Selection

If cell.value <> "Genehmigt" Then
' [... dein Code ...]
End If

Next cell

Viele Grüße

Mathias


http://www.teamplaner.net


  

Betrifft: AW: per Makro markierten Bereich auslesen von: Oliver
Geschrieben am: 30.06.2008 10:25:00

Vielen Dank für deine rasche Antwort, Mathias.
Ich hab's auch gleich ausprobiert. Es funktioniert teilweise: Wenn nur eine Zelle mit dem Inhalt "genehmigt" ausgewählt wird. Sind mehrere Zellen markiert, so werden auch diese Zellen überschrieben.


  

Betrifft: AW: per Makro markierten Bereich auslesen von: Matthias G
Geschrieben am: 30.06.2008 10:27:53

Hallo Oliver,

du musst natürlich in deinem Code "Selection" durch "Cell" ersetzen.

Gruß Matthias


  

Betrifft: AW: per Makro markierten Bereich auslesen von: Oliver
Geschrieben am: 30.06.2008 10:58:29

Hallo Mathias,

vielen Dank nochmals........ ich zieh jetzt gleich die Schandmaske auf .... ich kenne den genauen Syntax nämlich nicht.

Bei einer einzigen Zelle funktioniert's. Bei mehreren Zellen wird richtigerweise der Color.Index und Pattern ignoriert, die Zelle aber mit "Antrag" überschrieben.

Bei mir steht nun:

Dim cell As Range
For Each cell In Selection
If cell.Value <> "genehmigt" Then
With cell.Interior
.ColorIndex = 4
.Pattern = xlSolid
Selection.Formula = "Antrag"
End With
End If

Next cell


  

Betrifft: AW: per Makro markierten Bereich auslesen von: Matthias G
Geschrieben am: 30.06.2008 11:01:47

Hallo Oliver,

statt Selection.Formula = "Antrag" einfach
Cell = "Antrag"
(oder von mir aus auch Cells.Formula = "Antrag")

Gruß Matthias


  

Betrifft: nicht Cells.Formula sondern Cell.Formula - o.T. von: Matthias G
Geschrieben am: 30.06.2008 11:05:45

-


  

Betrifft: Danke!!!! von: Oliver
Geschrieben am: 30.06.2008 11:07:47

Vielen Dank Mathias. Das wars - alles funktioniert wie gewünscht :-)))))

ich kannte den Syntax nicht.


 

Beiträge aus den Excel-Beispielen zum Thema "per Makro markierten Bereich auslesen"