OVH Cloud OVH Cloud

Macro vérifie ligne correctement remplie

11 réponses
Avatar
lograd
Bonjour,
Je d=E9bute en VBA et je cherche une macro, associer =E0 un bouton qui
v=E9rifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 =E0 F65536.
j'aimerai associer un bouton qui v=E9rifie que toute les cellules de la
derni=E8re ligne entr=E9e sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer =E0 un bouton, c'est bon.
Mais il me manque la v=E9rification de la ligne.
Merci d'avance, en esp=E9rant que mes explications aient =E9t=E9 claires.

10 réponses

1 2
Avatar
isabelle
bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle

Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été claires.



Avatar
lograd
Bonjour Isabelle,
Je test cet-après midi et je reviens.
MERCI.


bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle

Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été claire s.





Avatar
lograd
Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai validé F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?




bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle

Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été claire s.





Avatar
lograd
Oups, correction sur le message du dessus, il faut lire:

"dès que j'ai validé F3 "

Merci d'avance.


Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai validé F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?




bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle

Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bo n.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été clai res.







Avatar
PeB
sub test

for lig=1 to 65536
if application.counta(Rows(lig))=0 then msg=msg & lig & "; "
'ou if application.counta(Range("A" & lig & ":F" & lig))=0 then msg=msg
& lig & "; "
next lig

msgbox(msg)

end sub


"lograd" a écrit dans le message de news:

Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été claires.
Avatar
isabelle
rebonjour,

quel est la formule en colonne A ?

isabelle

Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai validé F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?





bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle


Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été claires.









Avatar
lograd
Salut Isabelle et bien sur PeB,

En colonne A il y a juste la recopie d'une cellule, la cellule en J.
Je m'explique pour avoir une incrémentation auto en colonne A, j'ai
rusé.
De A à F je remplie une ligne, puis en colonne I il y a la première
formule =si(F4>0;A3+1;"") et ainsi de suite sur toute lacolonne I.
Puis en J il y a =texte(I4;"00000"), d'ou en A =J4.
et ainsi de suite sur toutes mes colonne A, I, J.

Mais j'ai résolu mon probleme, j'ai créer une macro en XL4 que je
lance par un Bouton.
Elle fonctionne très bien.
Par contre je ne sais pas l'adapter en VBA.
Donc cela reste comme cela.
Encore merci de votre aident, Isabelle et PeB.

Macro en XL4:

PROGRAMME Test si ligne complete avant sauvegarde
=SEL.CLASSEUR("Feuil1") Selectionne l'onglet "Feuil1"
ìRAN(FAUX) Évite le défilement de l'écran
DEBUT=!A3 Définis la première case dans la
colonne A a contrôlée
RETOUR DE BOUCLE 1
CASE=1 Variable CASE, les cases à
droite de la cellule active
=SELECTIONNER(DEBUT) Place le curseur sur la case définie par
la variable DEBUT
=SI(CELLULE.ACTIVE()="";A25()) Vérifie si la cellule active est vide,
si VIDE vas FIN DE PROGRAMME
RETOUR DE BOUCLE 2
CONTROLEÞCALER(CELLULE.ACTIVE();0;CASE) Copie la première et les
suivantes cases à droite de la cellule active
=SI(CONTROLE="";A13();A17()) Contrôle si la case à droite de la
cellule active est vide, si VIDE vas "CASE VIDE"
Si la case n'est pas VIDE, vas "CASE NON VIDE"
CASE VIDE
=ALERTE("CASE VIDE";2) Alerte par message que la case est
VIDE
=SELECTIONNER(CONTROLE) Place le curseur sur la case vide
=ARRETER() Arret du programme
CASE NON VIDE
CASEÊSE+1 Compteur CASE, s'incrémente de 1 a
chaque passage
=SI(CASE=6;A21()) Si la variable CASE=6, va vers "LIGNE
SUIVANTE"
©() Retour vers "RETOUR DE
BOUCLE 2"
LIGNE SUIVANTE
=SELECTIONNER("L(1)C") À partir de la case DEBUT, le
curseur fait un pas de 1 vers le bas
DEBUTÎLLULE.ACTIVE() La variable DEBUT prend la
valeur de la cellule active ( A4, A5, A6, ... )
¥() Retour vers
"RETOUR DE BOUCLE 1"
FIN DU PROGRAMME
=ALERTE("FIN DE VERIFICATION";2) Alerte par message la fin du contrôle
=SELECTIONNER(!A1) Selectionne la CASE A1
=ARRETER() Arret du programme



rebonjour,

quel est la formule en colonne A ?

isabelle

Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai validé F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?





bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle


Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été clair es.











Avatar
isabelle
re bonjour lograd,

avec cette macro j'ai éliminé les formules des colonnes I et J
dès qu'une cellule de la colonne G est sélectionnée la macro s'exécute et vérifie la ligne.
c'est à copier sur la *page code de la feuille à traiter,
_____________________________________________________________________________________________
* fait un click droit sur l'onglet de la feuille à traiter et sélectionne "Visualiser le code"
cela te mene directement à la page code de cette feuille.
_____________________________________________________________________________________________

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("G3:G65536"))
If Not isect Is Nothing Then
If Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 6))) = 6 Then
Cells(Target.Row + 1, 1) = "'" & (Format(CDbl(Cells(Target.Row, 1)) + 1, "00000"))
Cells(Target.Row + 1, 2).Select
Else
For i = 2 To 6
If Cells(Target.Row, i) = "" Then
Cells(Target.Row, i).Select
Selection.Interior.ColorIndex = 3
MsgBox ("vous devez remplir toute les cellules de la colonne B à F de cette ligne")
Selection.Interior.ColorIndex = xlNone
Exit Sub
End If
Next
End If
End If
End Sub


isabelle

Salut Isabelle et bien sur PeB,

En colonne A il y a juste la recopie d'une cellule, la cellule en J.
Je m'explique pour avoir une incrémentation auto en colonne A, j'ai
rusé.
De A à F je remplie une ligne, puis en colonne I il y a la première
formule =si(F4>0;A3+1;"") et ainsi de suite sur toute lacolonne I.
Puis en J il y a =texte(I4;"00000"), d'ou en A =J4.
et ainsi de suite sur toutes mes colonne A, I, J.

Mais j'ai résolu mon probleme, j'ai créer une macro en XL4 que je
lance par un Bouton.
Elle fonctionne très bien.
Par contre je ne sais pas l'adapter en VBA.
Donc cela reste comme cela.
Encore merci de votre aident, Isabelle et PeB.

Macro en XL4:

PROGRAMME Test si ligne complete avant sauvegarde
=SEL.CLASSEUR("Feuil1") Selectionne l'onglet "Feuil1"
ìRAN(FAUX) Évite le défilement de l'écran
DEBUT=!A3 Définis la première case dans la
colonne A a contrôlée
RETOUR DE BOUCLE 1
CASE=1 Variable CASE, les cases à
droite de la cellule active
=SELECTIONNER(DEBUT) Place le curseur sur la case définie par
la variable DEBUT
=SI(CELLULE.ACTIVE()="";A25()) Vérifie si la cellule active est vide,
si VIDE vas FIN DE PROGRAMME
RETOUR DE BOUCLE 2
CONTROLEÞCALER(CELLULE.ACTIVE();0;CASE) Copie la première et les
suivantes cases à droite de la cellule active
=SI(CONTROLE="";A13();A17()) Contrôle si la case à droite de la
cellule active est vide, si VIDE vas "CASE VIDE"
Si la case n'est pas VIDE, vas "CASE NON VIDE"
CASE VIDE
=ALERTE("CASE VIDE";2) Alerte par message que la case est
VIDE
=SELECTIONNER(CONTROLE) Place le curseur sur la case vide
=ARRETER() Arret du programme
CASE NON VIDE
CASEÊSE+1 Compteur CASE, s'incrémente de 1 a
chaque passage
=SI(CASE=6;A21()) Si la variable CASE=6, va vers "LIGNE
SUIVANTE"
©() Retour vers "RETOUR DE
BOUCLE 2"
LIGNE SUIVANTE
=SELECTIONNER("L(1)C") À partir de la case DEBUT, le
curseur fait un pas de 1 vers le bas
DEBUTÎLLULE.ACTIVE() La variable DEBUT prend la
valeur de la cellule active ( A4, A5, A6, ... )
¥() Retour vers
"RETOUR DE BOUCLE 1"
FIN DU PROGRAMME
=ALERTE("FIN DE VERIFICATION";2) Alerte par message la fin du contrôle
=SELECTIONNER(!A1) Selectionne la CASE A1
=ARRETER() Arret du programme




rebonjour,

quel est la formule en colonne A ?

isabelle


Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai validé F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?






bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle



Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton qui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est bon.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été claires.














Avatar
lograd
Bonjour Isabelle,
merci pour ta réponse, je vais tout de même la tester cet après-midi
et je reviens.
encore mersi d'avance pour ton aide.


re bonjour lograd,

avec cette macro j'ai éliminé les formules des colonnes I et J
dès qu'une cellule de la colonne G est sélectionnée la macro s'ex écute et vérifie la ligne.
c'est à copier sur la *page code de la feuille à traiter,
_________________________________________________________________________ ____________________
* fait un click droit sur l'onglet de la feuille à traiter et sélecti onne "Visualiser le code"
cela te mene directement à la page code de cette feuille.
_________________________________________________________________________ ____________________

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("G3:G65536"))
If Not isect Is Nothing Then
If Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 6) )) = 6 Then
Cells(Target.Row + 1, 1) = "'" & (Format(CDbl(Cells(Target.Row, 1)) + 1, "00000"))
Cells(Target.Row + 1, 2).Select
Else
For i = 2 To 6
If Cells(Target.Row, i) = "" Then
Cells(Target.Row, i).Select
Selection.Interior.ColorIndex = 3
MsgBox ("vous devez remplir toute les cellules de la colonne B à F de cette ligne")
Selection.Interior.ColorIndex = xlNone
Exit Sub
End If
Next
End If
End If
End Sub


isabelle

Salut Isabelle et bien sur PeB,

En colonne A il y a juste la recopie d'une cellule, la cellule en J.
Je m'explique pour avoir une incrémentation auto en colonne A, j'ai
rusé.
De A à F je remplie une ligne, puis en colonne I il y a la première
formule =si(F4>0;A3+1;"") et ainsi de suite sur toute lacolonne I.
Puis en J il y a =texte(I4;"00000"), d'ou en A =J4.
et ainsi de suite sur toutes mes colonne A, I, J.

Mais j'ai résolu mon probleme, j'ai créer une macro en XL4 que je
lance par un Bouton.
Elle fonctionne très bien.
Par contre je ne sais pas l'adapter en VBA.
Donc cela reste comme cela.
Encore merci de votre aident, Isabelle et PeB.

Macro en XL4:

PROGRAMME Test si ligne complete avant sauvegarde
=SEL.CLASSEUR("Feuil1") Selectionne l'onglet "Feuil1"
ìRAN(FAUX) Évite le défilement de l'écran
DEBUT=!A3 Définis la première case dans la
colonne A a contrôlée
RETOUR DE BOUCLE 1
CASE=1 Variable CASE, les cases à
droite de la cellule active
=SELECTIONNER(DEBUT) Place le curseur sur la case définie p ar
la variable DEBUT
=SI(CELLULE.ACTIVE()="";A25()) Vérifie si la cellule active est v ide,
si VIDE vas FIN DE PROGRAMME
RETOUR DE BOUCLE 2
CONTROLEÞCALER(CELLULE.ACTIVE();0;CASE) Copie la première et les
suivantes cases à droite de la cellule active
=SI(CONTROLE="";A13();A17()) Contrôle si la case à droite de la
cellule active est vide, si VIDE vas "CASE VIDE"
Si la case n'est pas VIDE, vas "CASE NON VIDE"
CASE VIDE
=ALERTE("CASE VIDE";2) Alerte par message que la case est
VIDE
=SELECTIONNER(CONTROLE) Place le curseur sur la case vide
=ARRETER() Arret du programme
CASE NON VIDE
CASEÊSE+1 Compteur CASE, s'incrémente de 1 a
chaque passage
=SI(CASE=6;A21()) Si la variable CASE=6, va vers "LI GNE
SUIVANTE"
©() Retour vers "RETOUR DE
BOUCLE 2"
LIGNE SUIVANTE
=SELECTIONNER("L(1)C") À partir de la case DEBUT, le
curseur fait un pas de 1 vers le bas
DEBUTÎLLULE.ACTIVE() La variable DEBUT prend la
valeur de la cellule active ( A4, A5, A6, ... )
¥() Retour vers
"RETOUR DE BOUCLE 1"
FIN DU PROGRAMME
=ALERTE("FIN DE VERIFICATION";2) Alerte par message la fin du contr ôle
=SELECTIONNER(!A1) Selectionne la CASE A1
=ARRETER() Arret du programme




rebonjour,

quel est la formule en colonne A ?

isabelle


Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai valid é F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?






bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle



Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton q ui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est b on.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été cla ires.
















Avatar
lograd
Re bonjour,
impeccable tu as résolu 2 problem avec ta macro.
1 la numérotation auto de ma colonne A, sans passer par des ruses un
peu tordues !!!
2 enfin la vérification de ma ligne.

encore merci.

Une précision, comment débuter ma numérotation de ma colonne A, la
première valeur je doit la rentrer comme cela : " '00125 " ?
Et après tout roule ?
Merci encore une fois pour ton aide, heureusement qu'il y a ce groupe,
vraiment vous êtes très fort !!!!



re bonjour lograd,

avec cette macro j'ai éliminé les formules des colonnes I et J
dès qu'une cellule de la colonne G est sélectionnée la macro s'ex écute et vérifie la ligne.
c'est à copier sur la *page code de la feuille à traiter,
_________________________________________________________________________ ____________________
* fait un click droit sur l'onglet de la feuille à traiter et sélecti onne "Visualiser le code"
cela te mene directement à la page code de cette feuille.
_________________________________________________________________________ ____________________

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("G3:G65536"))
If Not isect Is Nothing Then
If Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 6) )) = 6 Then
Cells(Target.Row + 1, 1) = "'" & (Format(CDbl(Cells(Target.Row, 1)) + 1, "00000"))
Cells(Target.Row + 1, 2).Select
Else
For i = 2 To 6
If Cells(Target.Row, i) = "" Then
Cells(Target.Row, i).Select
Selection.Interior.ColorIndex = 3
MsgBox ("vous devez remplir toute les cellules de la colonne B à F de cette ligne")
Selection.Interior.ColorIndex = xlNone
Exit Sub
End If
Next
End If
End If
End Sub


isabelle

Salut Isabelle et bien sur PeB,

En colonne A il y a juste la recopie d'une cellule, la cellule en J.
Je m'explique pour avoir une incrémentation auto en colonne A, j'ai
rusé.
De A à F je remplie une ligne, puis en colonne I il y a la première
formule =si(F4>0;A3+1;"") et ainsi de suite sur toute lacolonne I.
Puis en J il y a =texte(I4;"00000"), d'ou en A =J4.
et ainsi de suite sur toutes mes colonne A, I, J.

Mais j'ai résolu mon probleme, j'ai créer une macro en XL4 que je
lance par un Bouton.
Elle fonctionne très bien.
Par contre je ne sais pas l'adapter en VBA.
Donc cela reste comme cela.
Encore merci de votre aident, Isabelle et PeB.

Macro en XL4:

PROGRAMME Test si ligne complete avant sauvegarde
=SEL.CLASSEUR("Feuil1") Selectionne l'onglet "Feuil1"
ìRAN(FAUX) Évite le défilement de l'écran
DEBUT=!A3 Définis la première case dans la
colonne A a contrôlée
RETOUR DE BOUCLE 1
CASE=1 Variable CASE, les cases à
droite de la cellule active
=SELECTIONNER(DEBUT) Place le curseur sur la case définie p ar
la variable DEBUT
=SI(CELLULE.ACTIVE()="";A25()) Vérifie si la cellule active est v ide,
si VIDE vas FIN DE PROGRAMME
RETOUR DE BOUCLE 2
CONTROLEÞCALER(CELLULE.ACTIVE();0;CASE) Copie la première et les
suivantes cases à droite de la cellule active
=SI(CONTROLE="";A13();A17()) Contrôle si la case à droite de la
cellule active est vide, si VIDE vas "CASE VIDE"
Si la case n'est pas VIDE, vas "CASE NON VIDE"
CASE VIDE
=ALERTE("CASE VIDE";2) Alerte par message que la case est
VIDE
=SELECTIONNER(CONTROLE) Place le curseur sur la case vide
=ARRETER() Arret du programme
CASE NON VIDE
CASEÊSE+1 Compteur CASE, s'incrémente de 1 a
chaque passage
=SI(CASE=6;A21()) Si la variable CASE=6, va vers "LI GNE
SUIVANTE"
©() Retour vers "RETOUR DE
BOUCLE 2"
LIGNE SUIVANTE
=SELECTIONNER("L(1)C") À partir de la case DEBUT, le
curseur fait un pas de 1 vers le bas
DEBUTÎLLULE.ACTIVE() La variable DEBUT prend la
valeur de la cellule active ( A4, A5, A6, ... )
¥() Retour vers
"RETOUR DE BOUCLE 1"
FIN DU PROGRAMME
=ALERTE("FIN DE VERIFICATION";2) Alerte par message la fin du contr ôle
=SELECTIONNER(!A1) Selectionne la CASE A1
=ARRETER() Arret du programme




rebonjour,

quel est la formule en colonne A ?

isabelle


Bonsoir Isabelle,
j'ai testé ta macro, il y un petit problème.
Elle me dit tout le temps "dernière ligne non complété".
Je précise qu'en colonne A j'ai une numérotation automatique et que
celle -ci s'incrémente de +1 a chaque fois que la cellule F de la
ligne à remplire est remplie.

Exemple:

A3125 puis je tape les infos de B3 à F3, dès que j'ai valid é F4
alors A4126.
Ce que je voudrais c'est une Macro qui vérifie si ma ligne que je
viens de taper à toutes les
cellules remplis.
A savoir, dès que la cellule B3 est remplis alors toutes les case
jusqu'à F3 doivent l'êtres aussi.

Me suis-je bien fait comprendre ?






bonjour lograd,

x = Cells.SpecialCells(xlCellTypeLastCell).Row
If Application.CountA(Range("A" & x & ":F" & x)) = 6 Then
MsgBox "Ok"
Else: MsgBox "Dernière ligne non complete"
End If

isabelle



Bonjour,
Je débute en VBA et je cherche une macro, associer à un bouton q ui
vérifie si une ligne est bien remplie.
Je m'explique:
j'ai un tableau qui va de A3 à F65536.
j'aimerai associer un bouton qui vérifie que toute les cellules de la
dernière ligne entrée sont remplies.
Pour pouvoir sauvegarder et quitter.
Le code pour sauvegarder et quitter, associer à un bouton, c'est b on.
Mais il me manque la vérification de la ligne.
Merci d'avance, en espérant que mes explications aient été cla ires.
















1 2