Aide VB pour débutant
Résolu/Fermé
A voir également:
- Aide VB pour débutant
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Logiciel de programmation pour débutant - Guide
- Cours d'infographie pour debutant - Forum Graphisme
- Logiciel montage vidéo débutant - Guide
4 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
20 mars 2009 à 12:46
20 mars 2009 à 12:46
Bonjour,
Il faut que tu déclares ou que tu nommes une plage et ensuite que tu testes chaque cellule de cette plage.
Par exemple :
Attention, je n'ai pas testé, j'ai fait ça de tête, mais c'est l'idée.
;o)
Il faut que tu déclares ou que tu nommes une plage et ensuite que tu testes chaque cellule de cette plage.
Par exemple :
Dim plage As Range Dim plage As Range Dim cl Set plage = Sheets(1).Range("A2:G10") For Each cl In plage If cl.Interior.ColorIndex = 6 And cl.Value = "" Then MsgBox "cellule " & cl.Row & ", " & cl.Column & " non renseignée." End If Next cl
Attention, je n'ai pas testé, j'ai fait ça de tête, mais c'est l'idée.
;o)
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
20 mars 2009 à 13:53
20 mars 2009 à 13:53
Dans le post initial tu dis : "en appuyant sur un bouton (ou autre) ".
Je suppose que la macro se lance sur l'évènement click du bouton à la fin de la saisie.
N'oublie pas de définir la plage ici : Set plage = Sheets(1).Range("A2:G10"). Remplace "A2:G10" par les limite de ton tableau.
;o)
Je suppose que la macro se lance sur l'évènement click du bouton à la fin de la saisie.
N'oublie pas de définir la plage ici : Set plage = Sheets(1).Range("A2:G10"). Remplace "A2:G10" par les limite de ton tableau.
;o)
Sub tentative()
Dim plage As Range
Dim cl
Set plage = Sheets(1).Range("c2026,d2026,i2026,m2026,n2026,o2026")
For Each cl In plage
If cl.Value = "" Then
msgbox "Merci de compléter la ligne " & cl.Row & ", colonne " & cl.Column & ""
End If
Next cl
End Sub
voila j'ai pris ta macro, et j'ai mis mes colonnes...comment je peux faire pour le problème des lignes ? parce que 2026 ne doit pas être fixe. La msg box c'est ok...par contre je n'arrive pas à mettre la cellule au lieu de colonne et ligne... j'aimerais que ça affiche: "merci de compléter la cellule c2026" au lieu de mettre "merci de compléter la ligne 2026, colonne 3"
mais le gros problème reste la selection des lignes...
Dim plage As Range
Dim cl
Set plage = Sheets(1).Range("c2026,d2026,i2026,m2026,n2026,o2026")
For Each cl In plage
If cl.Value = "" Then
msgbox "Merci de compléter la ligne " & cl.Row & ", colonne " & cl.Column & ""
End If
Next cl
End Sub
voila j'ai pris ta macro, et j'ai mis mes colonnes...comment je peux faire pour le problème des lignes ? parce que 2026 ne doit pas être fixe. La msg box c'est ok...par contre je n'arrive pas à mettre la cellule au lieu de colonne et ligne... j'aimerais que ça affiche: "merci de compléter la cellule c2026" au lieu de mettre "merci de compléter la ligne 2026, colonne 3"
mais le gros problème reste la selection des lignes...
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
20 mars 2009 à 14:25
20 mars 2009 à 14:25
On n'est plus dans le cas de figure défini dans le post initial ...
Voilà ce que j'ai retenu dans le post initial :
J'ai un tableau avec plusieurs lignes et colonnes, et une personne doit remplir les lignes au fur et à mesure...
...
Et en fait, j'aimerais effectuer une macro qui ferait que si la personne ne remplit pas toutes les cases jaunes (obligatoires), en appuyant sur un bouton (ou autre) un message apparaisse pour le prévenir... et je ne vois pas comment faire ça...
C'est ce que fait le bout de code du post 2.
Maintenant tu veux tester une ligne particulière (qui n'est pas fixe) sur certaines colonnes et indiquer la cellule non renseignée sous le format "An"... on n'est plus du tout dans le même cas de figure et donc le post 2 est hors sujet maintenant.
Je veux bien aider mais pas perdre mon temps.
Voilà ce que j'ai retenu dans le post initial :
J'ai un tableau avec plusieurs lignes et colonnes, et une personne doit remplir les lignes au fur et à mesure...
...
Et en fait, j'aimerais effectuer une macro qui ferait que si la personne ne remplit pas toutes les cases jaunes (obligatoires), en appuyant sur un bouton (ou autre) un message apparaisse pour le prévenir... et je ne vois pas comment faire ça...
C'est ce que fait le bout de code du post 2.
Maintenant tu veux tester une ligne particulière (qui n'est pas fixe) sur certaines colonnes et indiquer la cellule non renseignée sous le format "An"... on n'est plus du tout dans le même cas de figure et donc le post 2 est hors sujet maintenant.
Je veux bien aider mais pas perdre mon temps.
excuse moi, je me suis sûrement mal expliqué.
je récapitule: j'ai un tableau avec plusieurs colonnes et beaucoup de lignes. Certaines colonnes sont obligatoires ( C, D, I, M, N, O ). La personne doit remplir une ligne pour chaque action effectuée. Mais souvent, elle remplit plusieurs lignes d'un coup, au lieu de le faire au fur et à mesure.
Ce que je voudrais c'est que ma macro fasse que :
- soit en cliquant sur le bouton, une msg box lui indique si il a oublié une colonne obligatoire, sur les lignes qu'il vient de remplir...
- soit de manière automatique...
Pour le moment j'ai ça :
Private Sub CommandButton1_Click()
Dim plage As Range
Dim cl
Set plage = Sheets(1).Range("c2026,d2026,i2026,m2026,n2026,o2026")
For Each cl In plage
If cl.Value = "" Then
msgbox "Merci de compléter la ligne " & cl.Row & ", colonne " & cl.Column & ""
End If
Next cl
End Sub
Comme tu vois je n'arrive qu'à le mettre pour la ligne 2026, alors que la personne peut remplir plus que cela...
Et j'aimerais que dans la msg box, la cellule apparaisse, et non pas le n° de ligne et de colonne...
Encore désolé de m'être mal expliqué, et merci pour ton aide
je récapitule: j'ai un tableau avec plusieurs colonnes et beaucoup de lignes. Certaines colonnes sont obligatoires ( C, D, I, M, N, O ). La personne doit remplir une ligne pour chaque action effectuée. Mais souvent, elle remplit plusieurs lignes d'un coup, au lieu de le faire au fur et à mesure.
Ce que je voudrais c'est que ma macro fasse que :
- soit en cliquant sur le bouton, une msg box lui indique si il a oublié une colonne obligatoire, sur les lignes qu'il vient de remplir...
- soit de manière automatique...
Pour le moment j'ai ça :
Private Sub CommandButton1_Click()
Dim plage As Range
Dim cl
Set plage = Sheets(1).Range("c2026,d2026,i2026,m2026,n2026,o2026")
For Each cl In plage
If cl.Value = "" Then
msgbox "Merci de compléter la ligne " & cl.Row & ", colonne " & cl.Column & ""
End If
Next cl
End Sub
Comme tu vois je n'arrive qu'à le mettre pour la ligne 2026, alors que la personne peut remplir plus que cela...
Et j'aimerais que dans la msg box, la cellule apparaisse, et non pas le n° de ligne et de colonne...
Encore désolé de m'être mal expliqué, et merci pour ton aide