Copier cellule dans celle d’en dessous + ajouter une unité.

Y compris Power BI, Power Query et toute autre question en lien avec Excel
H
Harzer
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 20 février 2012
Version d'Excel : 2010

Message par Harzer » 3 mai 2019, 19:42

Bonjour,
Malgré quelques essais, je n’arrives pas à trouver solution à mon problème.
Voici les informations pour la réalisation du code :
1. Le code demandé concerne seulement la colonne A.
2. Pour que le code s’exécute, deux conditions doivent être respectées, à savoir, la cellule sélectionnée doit être non vide et la cellule d’en dessous doit être vide.
Lorsque ces deux conditions sont respectées, si par exemple la cellule sélectionnée est la cellule A2 alors on va copier le contenu de la cellule A2 dans la cellule A3 (Cellule d’en dessous) en prenant soins d’ajouter une unité au chiffre se trouvant entre les deux signes tirets (-) et Slash (/).
Un exemple vaut mieux qu’un long discourt.
Supposant que la colonne sélectionnée est A2 et son contenu est "GTU25-001/2018 M", si j’exécute le code, le contenue de la cellule A3 devra être "GTU25-002/2018 M", alors cette même cellule A3 reçoit le focus.
Si j’exécute le code une 2e fois, le contenue de la cellule A4 devra être "GTU25-003/2018 M", alors la cellule A4 reçoit le focus et ainsi de suite.
Si maintenant la cellule sélectionnée est A6 et que son contenu est "HPM12-101/2018 F", si j’exécutes le code, le contenue de la cellule A7 doit être "HPM12-102/2018 F" et la cellule A7 reçoit le focus.
D’avance merci pour vos contributions.
Avatar du membre
PinkRabbit
Membre habitué
Membre habitué
Messages : 70
Appréciations reçues : 5
Inscrit le : 6 avril 2017
Version d'Excel : 2016 FR

Message par PinkRabbit » 3 mai 2019, 20:08

Salut Harzer,

Pour ce que tu dois faire tu dois passer par:
Worksheet_SelectionChange celui-ci s'executera à chaque fois que tu changes de cellule
Dans ce code tu vas refaire des focus donc je pense qu'il est nécessaire que tu insères au début un Application.EnableEvents = False pour éviter de déclencher ça à chaque focus (mais je ne suis pas certain que ce soit indispensable...)

Ensuite pour tes sélections il faut que tu utilises la fonction Instr 2 fois. Celle-ci renvoie la position d'un caractère.
Donc Instr(position de départ, Texte, Caractère cherché)

Ensuite tu récupère les chiffres entre le tiret et le slash avec stxt (je ne connais pas le code vba...)

Enfin ce que tu récupères tu lui ajoute 1 (pense bien à le passer en Integer pour que ça marche)

Et hop !
H
Harzer
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 20 février 2012
Version d'Excel : 2010

Message par Harzer » 3 mai 2019, 20:18

Bonjour PinkRabbit,
Merci pour votre réponse et les explications qui l'accompagne.
Mais il y'a juste un petit problème, à savoir que je ne suis pas doué et que je ne suis pas un expert en vba.
Merci de votre aide.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'763
Appréciations reçues : 578
Inscrit le : 27 août 2012
Version d'Excel : 365 Insider

Message par Jean-Eric » 3 mai 2019, 21:05

Bonjour,
Un exemple dans le fichier joint.
A te relire.
Cdlt.
Harger.xlsm
(16.94 Kio) Téléchargé 3 fois
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
H
Harzer
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 20 février 2012
Version d'Excel : 2010

Message par Harzer » 3 mai 2019, 23:16

Bonjour Jean-Eric,
Merci pour votre code et votre réponse rapide,
Votre code comme vous me le proposer, fonctionne parfaitement et comme je le souhaite.
J’ai voulu lier votre code à un bouton, ainsi j’ajoute la cellule en question seulement quand je le souhaite réellement, mais malheureusement j’ai une erreur d’exécution 424, veuillez s-v-p consulter le fichier joint.
Salutations.
Harger1.xlsm
(20.33 Kio) Téléchargé 1 fois
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'763
Appréciations reçues : 578
Inscrit le : 27 août 2012
Version d'Excel : 365 Insider

Message par Jean-Eric » 4 mai 2019, 08:05

Bonjour,
Avant de penser au bouton, j'ai ajouté une nouvelle procédure évènemetielle.
Elle s'exécute avec un double-clic sur la cellule à recopier.
Voir Feuil2
A te relire.
Cdlt.
Harger.xlsm
(21.2 Kio) Téléchargé 4 fois
Nota : J'ai de plus corrigé une petite erreur sur le procédure précédente. :oops:
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
H
Harzer
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 20 février 2012
Version d'Excel : 2010

Message par Harzer » 4 mai 2019, 13:34

Bonjour Jean-Eric,
Merci encore une fois de plus pour votre réponse.
Justement l'évènement BeforeDoubleClick n'était pas utilisé dans ma feuille et me permets d'ajouter une cellule lorsque je le désire. En résumé, le code répond totalement à ma demande et me satisfait amplement.
Grand MERCI à vous.
Cordialement.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message