Calcul automatique sur colonne avec case vide

Fermé
MichouParis Messages postés 3 Date d'inscription mercredi 2 août 2017 Statut Membre Dernière intervention 2 août 2017 - 2 août 2017 à 11:35
MichouParis Messages postés 3 Date d'inscription mercredi 2 août 2017 Statut Membre Dernière intervention 2 août 2017 - 2 août 2017 à 16:45
Bonjour à toutes et tous,

J'aimerais trouver une solution au problème suivant :

- J'essaye d'appliquer une formule automatiquement avec le double clique de l'incréméntation sur une colonne entière.

- Ma formule est =si(estvide(U2);"non";"oui")

Le problème, vous l'aurez deviné, c'est que si la case suivante est vide l'incrémentation s'arrête. Mais j'aimerais une réponse si elle est vide.

Il s'agit de date de signature de contrat, si la case est vide une action doit être menée.

Quelqu'un aurait t'il une solution ?
J'ai regardé et cherché sur pas mal de forum et n'ai pas trouvé de réponsé, il se peut que je n'ai pas assez cherché, mais au cas ou, je post quand même.

Merci les loulous

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié le 2 août 2017 à 13:45
Bonjour et bienvenue sur le Forum,

Deux possibilités :
1. Au lieu de double cliquer sur la croix de recopie, tu saisis la croix (clic gauche maintenu) et tu descends jusqu'à la dernière cellule.
2. Tu copies la première cellule, tu appuis et maintiens la touche Maj (Shift) et tu cliques sur la dernière cellule (ça sélectionne de la première à la dernière cellule), clic droit, coller.

Cordialement
Patrice
0
MichouParis Messages postés 3 Date d'inscription mercredi 2 août 2017 Statut Membre Dernière intervention 2 août 2017
2 août 2017 à 14:30
Bonjour et merci

Effectivement je viens suis newbe ici.

C'est par la/les fonctionnalités que tu explique que je passe d'ordinaire.

Le problème est que je souhaite automatiser les opérations, et lorsque j'enregistre la macro il me faudrait aller jusqu'a la dernière ligne de valeur, sans avoir à la selectionné manuellement (si des lignes sont ajoutées, il manquera des données)

Utilisé un genre de crtl+maj+"flèche du bas", pour amener la fonction jusqu'en bas.

J'ai essayer en mettant une deuxième condition à la fonction si =SI(estnum(Q2);SI(estvide(V2);"non";"oui))

Le double clique pour ne semble pas marché pour le =SI à deux condition et marche pour le Si à une condition mais s'arrête dès qu'une case (V) est vide.

J'espère que j'arrive bien à m'exprimer.

Merci de l'aide

MP
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
2 août 2017 à 16:12
Re,

Je ne suis pas sûr d'avoir bien compris ce que tu voudrais faire.

Voici un code, déclenché par un double clic dans la cellule (pas sur la croix de recopie), pour auto-incrémenter la formule d'une cellule de départ (ici V2) jusqu'à la ligne de la dernière cellule utilisée dans la colonne précédente, même si il y a des cellules vides dans cette colonne.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Range, r As Range
  'Définir la première cellule qui contient la formule
  Set c = Range("V2")
  'Vérifier que le double clic a lieu dans la colonne à incrémenter, sinon terminer
  If Intersect(Target, c.EntireColumn) Is Nothing Or Target.Column = 1 Then Exit Sub
  'Définir la plage à incrémenter en fonction de la colonne précédente
  Set r = Range(c, Cells(Rows.Count, c.Column - 1).End(xlUp).Offset(0, 1))
  'Vérifier que le double clic a lieu dans la plage à incrémenter, sinon terminer
  If Target.Row < c.Row Or (Target.Row + Target.Rows.Count) > (r.Row + r.Rows.Count) Then Exit Sub
  'Incrémenter la plage
  c.AutoFill Destination:=r
  'Annuler le double clic
  Cancel = True
End Sub

Copier/coller le code dans le module de la feuille.
0
MichouParis Messages postés 3 Date d'inscription mercredi 2 août 2017 Statut Membre Dernière intervention 2 août 2017
2 août 2017 à 16:45
Effectivement cela devrait m'aider ; le principe est la copier la formule jusqu'a la dernière ligne de donnée de la colonne précédente.

Pour faire simple ;

J'ai un listing pro type (nom, prénom, mail, (...), date signature )

Je dois mettre en évidence les personnes ayant une cellule dans la colonne "date signature", ce qui signifie qu'ils n'ont pas signé.

Je récupère le fichier sous format .csv (tout attaché) et je dois produire des tdc.

Mon souhait été donc d'automatisé le process de A à Z :

D'ouvrir le fichier, d’exécuter et de transmettre les TDC.

J'y suis parvenu, sauf qu'avec réflexion je me suis dis :

-Si le fichier augmente la macro ne sera plus valide sur les dernières lignes, il faudra donc retraiter manuellement ce que je souhaite naturellement évité. (colonne "V" faite manuellement)

Je pense que le recorder de macro à donc atteint ces limites et que le code dois être retravaillé pour couvrir mes besoins.

Ta proposition devrait faire l'affaire il me semble.

Je te tiens au courant dès que fait.


Merci beaucoup de l'aide apportée


MP
0