[VBA] Afficher cellule vide Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
Brique de lait
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 11 juillet 2014
Version d'Excel : 2007

Message par Brique de lait » 11 juillet 2014, 13:04

Bonjour,

J'ai un code VBA qui sélectionne une colonne de la cellule N2 à la dernière cellule remplie et qui afficher un MsgBox si une cellule est vide.

Le problème que je remarque quand je fais un pas à pas détaillé, c'est que la sélection "s'étend". C'est à dire que au départ le code sélectionne bien les cellules N2 à la dernière cellule remplie mais au milieu de la colonne la sélection s'étend vers le bas comme si il y avait encore des cellules remplies... Du coup le code n'a pas de fin.

J’espère que c'est assez précis.

Voila mon code :

'Selectionne la feuille liste principale
Sheets("Liste principale").Select

' Selectionne la première cellule du tableau
Range("N2:N" & Range("N" & Rows.Count).End(xlUp).Row).Select

' Boucle tant que pas vide

Do While Not (IsEmpty(ActiveCell))

NbLigne = NbLigne + 1
' Selectionne la ligne en dessous
Selection.Offset(1, 0).Select

' Si il y a une cellule vide on affiche le message et on sort du programme
If IsEmpty(ActiveCell) Then
MsgBox ("Cellule N" & NbLigne + 1 & " vide")
Exit Sub
End If

Loop

Si quelqu'un peut m'aider ou à une idée, je suis preneur.
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 6'280
Appréciations reçues : 106
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2011

Message par Dan » 11 juillet 2014, 13:12

Bonjour

Essaie ceci
Sub test()
Dim cel as range
'Selectionne la feuille liste principale
Sheets("Liste principale").Select

For Each cel In Range("N2:N" & Range("N" & Rows.Count).End(xlUp).Row)
    If IsEmpty(cel) Then MsgBox ("Cellule N" & cel.Row & " vide"): Exit Sub
Next
End Sub
Si ok, clique sur le V vert à coté du bouton EDITER pour cloturer le fil lors de ta réponse

Crdlt
@+ Dan ;)
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 11 juillet 2014, 13:13

sub toto()
with Sheets("Liste principale")
For i = 2 to .Range("N" .rows.count).End(xlUp).Row
If .range("N" & i) = "" then
msgbox("Cellule N" & i & " vide")
end if
next i
end with
end sub
B
Brique de lait
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 11 juillet 2014
Version d'Excel : 2007

Message par Brique de lait » 11 juillet 2014, 14:08

WOH! Merci Dan ça marche nikel! Je mets le sujet en résolu.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message