Als tekst rood is doe dit anders doe dat

Status
Niet open voor verdere reacties.

gast0660

Terugkerende gebruiker
Lid geworden
28 dec 2010
Berichten
4.530
Hoi,
Ik heb volgende
De bedoeling is dat ik een Msgbox krijg als de kleurindex rood is en als de kleurindex zwart is de macro gewoon verder gaat
Code:
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Order")
iRow = ws.Cells(Rows.Count, 1) _
  .End(xlUp).Offset(1, 0).Row
 If Selection.EntireRow.Font.ColorIndex = 3 Then
 MsgBox "lege rijen invoegen"
Else
If Selection.EntireRow.Font.ColorIndex = 1 Then
ws.Cells(iRow, 1).Value = Me.TextBox7.Text
ws.Cells(iRow, 2).Value = Me.TextBox8.Text
ws.Cells(iRow, 3).Value = Me.TextBox10.Text
ws.Cells(iRow, 4).Value = Me.TextBox11.Text
ws.Cells(iRow, 5).Value = Me.TextBox12.Text

End If
End If
End Sub
Ik krijg het niet in orde
Alvast bedankt
 
En dan ga je een hele rij bekijken of die font rood is met Entirerow?
 
Hoi Hsv,
bedankt voor de snelle reactie
Ik ben al zo aan het klooien geweest,dat ik het noorden eventjes kwijt ben.
De bedoeling is dat de macro naar de laatste niet ingevulde rij gaat en als de kleurindex van cel a tot e rood is in die rij , ik een msg box krijg anders mag de macro gewoon doorgaan
groet
 
Hoi Hsv,
Edit
weer fout:o
Als de kleurindex in cel A in de laatste niet ingevulde rij rood is het al genoeg, hoeft niet A tot E te zijn.
Het komt er gewoon op neer dat de macro naar eerstvolgende lege rij gaat, als de kleurindex rood is in cell A dan moet ik een msg box krijgen anders mag de macro gewoon doorgaan
Groet
Groet
 
Hoi,

Een bestandje plaatsen geeft volgens mij hier meer duidelijkheid.
 
Zoiets?
Code:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets("Order")
 If ActiveCell.Row > (ws.Cells(Rows.Count, 4).End(xlUp).Row - 3) Then
   MsgBox "lege rijen invoegen"
  Else
   ws.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = Array(TextBox7.Text, TextBox8.Text, TextBox10.Text, TextBox11.Text, TextBox12.Text)
  End If
End Sub
 
Hoi Hsv,
Dank u voor het meedenken, maar uw code doet nog niet echt wat ik wil bereiken.
Nog een extra woordje uitleg.
Als de rij die drie rijen boven het totaal staat is ingevuld (Referentie kolom A is genoeg) de msg box verschijnt.
Als voorbeeld als de totaal som in E 39 staat dan moet ik de msg box krijgen als ik een nieuwe ingave wil invoeren en A 36 is reeds ingevuld, als ik een lege rij invoeg en daarna een nieuwe ingave invoer dan moet ik opnieuw een msg box krijgen want nu is E40 het totaal en A37 is ingevuld.
Hopelijk is het en beetje duidelijk
Groet
 
Hoi,
Het mag ook eventueel anders, maar daar heb ik zelf nog niet over nagedacht. Ik begin gewoon in rij 16 met het invullen van de producten en als alles is ingegeven
ik op een knop druk zeg maar "werk af" en het order wordt afgewerkt met totaal som en layout
Mischien is dit een idee

Groet
 
Misschien ben ik toch minder slim en is de vraag beter bestemd voor iemand anders.
Eerst naar rode tekst kijken, een lege rij invoegen, dan weer niet.

Blijf met de uitleg ook graag bij het geleverde bestand.
De totaalsom staat in cel E43, nu staat er weer bv. E39.

Maak er dan een tabel van zoals in mijn reactie op je vorige vraag.

Code:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets("Order")
 If ActiveCell.Row > (ws.Cells(Rows.Count, 4).End(xlUp).Row - 2) Then
   MsgBox "lege rijen invoegen"
  Else
   ws.Cells(Rows.Count, 5).End(xlUp).Offset(-3, -4).Resize(, 5) = Array(TextBox7.Text, TextBox8.Text, TextBox10.Text, TextBox11.Text, TextBox12.Text)
  End If
End Sub
 
Hoi HSV?
Je bent zeker slim genoeg:thumb: E39 was gewoon een voorbeeld
Ik zit aan 95% van de oplossing.
De msg box zou zich moeten herhalen.
Dus ik krijg de msg box, ik voeg een lege rij toe en ik maak een nieuwe ingave dit werkt perfect.
Doe ik nadien een nieuwe ingave (zonder op lege rij invoegen te klikken) zou ik opnieuw de msg box moeten krijgen nu wordt de laatste ingave overschreven.
Sorry voor de overlast
Groet
 
En moet je dan altijd een cel activeren in je tabel alvorens je de form aanroept?
Dat zou ik zeker anders willen hebben toch?
 
Hoi Hsv,
Zeker niet, iedere suggestie is welkom, ik gebruik de (beperkte) kennis om iets voor elkaar te krijgen.
Groet
edit : ik gebruik mijn (beperkte) kennis om iets voor elkaar te krijgen.
 
Laatst bewerkt:
Hoi gast0660,

Verwijder de tekst die helemaal onderaan staat, en test dit eens.
Code:
Private Sub CommandButton1_Click()
 If Range("A16").End(xlDown).Row = Cells(Rows.Count, 4).End(xlUp).Row - 3 Then
   If MsgBox("lege rij invoegen?", vbExclamation + vbYesNo) = vbYes Then
        With Range("A16").End(xlDown).Offset(1).EntireRow
          .Insert , xlFormatFromLeftOrAbove
          .Font.ColorIndex = xlAutomatic
        End With
      GoTo invoegen
   Else
      MsgBox "afgebroken"
   End If
  Else
invoegen:
   Cells(Cells(Rows.Count, 5).End(xlUp).Row, 1).End(xlUp).Offset(1).Resize(, 5) = Array(TextBox7.Text, TextBox8.Text, TextBox10.Text, TextBox11.Text, TextBox12.Text)
  End If
End Sub
 
Hoi Hsv,
Ik dat morgenvroeg uitproberen
Ik ben nu al dankbaar voor al uw moeite
Groet
 
Hoi HSV,
Dit is het helemaal, TOP:thumb:
Hartelijk dank
Groet
 
Mooi, volgens mij lukt het ook nog wel met.
Code:
 Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = Array(TextBox7.Text, TextBox8.Text, TextBox10.Text, TextBox11.Text, TextBox12.Text)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan