> Tous les forums > Forum Bureautique
 VBA Ajout ligne à chaque nouv. valeur trouvéeSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
rudika
  Posté le 01/02/2017 @ 12:05 
Aller en bas de la page 
Petite astucienne

Bonjour,

1/ Je souhaiterais mettre une macro pour ajouter une nouvelle ligne au-dessus de celle où une nouvelle valeur est trouvée en cellule A ? je m’explique :

  • En A17 nouveau nom détecté (Pierre) car avant on avait (Anatole)
  • Donc je voudrais ajouter en ligne 16 une nouvelle ligne vierge (au-dessus de cellule A17)

Et idem à chaque fois : ex. A27 / A34 / A/46 / A/53. Je peux avoir un tableur de 2000 lignes..

2/ Et si possible: copier en cellule B de la nouvelle ligne vierge ajoutée, la formule de la cellule B3

  • B3 / =RECHERCHEV(A3;ressources!$A$1:$B$11;2;0)
  • Onglet Ressources :
A B 1 Anatole 1 2 Bernard 2 3 Pierre 3 4 Chloé 4 5 Nicolas 5 6 Camille 6 7 Bertrand 7 8 8
  • mon tableur : Nom N° Date de
    dépôt Déclarant -
    Nom particlier anatole 1 anatole anatole anatole anatole Bernard 2 Bernard Bernard Bernard Bernard Bernard Bernard Bernard Bernard Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Chloé Chloé Chloé Chloé Chloé Chloé Chloé Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Nicolas Camille Camille

et je sors mes extractions / tableurs ce jour.. alors si qq'un est dispo derrière son ordi....

Un grand merci d’avance…

Karène

Formule en



Modifié par rudika le 01/02/2017 12:31
Publicité
marcoline
 Posté le 01/02/2017 à 14:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour rudika .

Il est souhaitable de joindre un capture d'écran pour que ce soit plus explicite .

Voir ce site qui vous sera très utile . ICI .

A plus .

rudika
 Posté le 01/02/2017 à 14:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

j'ai bien essayé de faire une copie écran avec outil capture comme je fais toujours.. mais impossible de coller sous ce message.. comment faire ?

merci

K.

rudika
 Posté le 01/02/2017 à 15:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Debrief
 Posté le 03/02/2017 à 00:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour rudika,

Ça dépend de comment tu veux que cette insertion de ligne se fasse. Soit nom par nom soit tous les noms d'un coup.

  1. Nom par nom (en se positionnant sur la ligne du nouveau nom et en déclenchant la macro par son raccourci ou un bouton)
    Il faut enregistrer une macro qui reprend toute la manip (insertion ligne au dessus et copie de la formule).
    Puis aller dans la macro pour la modifier de sorte que la référence aux lignes soit en relation avec la ligne sélectionnée et non plus la ligne au moment de l'enregistrement de la macro (voir exemple ci-dessous)

  2. Tous les noms d'un coup (en déclenchant la macro par son raccourci ou un bouton)
    Il faut faire un petit programme VBA pas bien compliqué qui fait ça, mais faut quand même entrer dans un "mode programmation" moins facile.

Questions (pour la solution 1)

1 - Sais-tu enregistrer une macro ?
2 - Sais-tu aller dans la macro pour la modifier ?
3 - Sais-tu associer un raccourci à une macro ?

Exemple:

Macro enregistrée: insertion au dessus de la ligne 17 et copie de la cellule B3 en colonne B de cette nouvelle ligne

Sub Macro1()
Rows("17:17").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B3").Select
Selection.Copy
Range("B17").Select
ActiveSheet.Paste
End Sub

Macro modifiée: insertion au dessus de la ligne d'une cellule sélectionnée (par un clic dedans ou par déplacement avec les flèches du clavier) (cette cellule sélectionnée est la cellule active) et copie de la cellule B3 en colonne B de cette nouvelle ligne

Sub Macro1()
Dim Ligne As Integer
Ligne = ActiveCell.Row
Rows(Ligne & ":" & Ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B3").Select
Selection.Copy
Range("B" & Ligne).Select
ActiveSheet.Paste
End Sub

Cordialement,
D.

Modification 1 ... Cette macro fait ce que tu as demandé mais ne donnera pas de résultat car la formule copiée se base sur la valeur de la cellule A de la même ligne. Or la ligne insérée n'a rien en cellule A.
Il faudrait donc remplacer le code de la macro par

Sub Macro1()
Dim Ligne As Integer
Ligne = ActiveCell.Row
Rows(Ligne & ":" & Ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B" & Ligne).FormulaLocal = "=RECHERCHEV(A" & Ligne + 1 & " ; ressources!$A$1:$B$11;2;0)"
End Sub

Modification 2 ... Si c'est encore d'actualité, vu que tu voulais une solution le 1er février au soir, voici un fichier contenant la macro "Insertion" qui traite tous les noms d'un coup -> http://www.cjoint.com/c/GBdj5G1g5Zo



Modifié par Debrief le 03/02/2017 10:57
rudika
 Posté le 03/02/2017 à 09:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour Debrief,

merci beaucoup. Je vais tester ta solaution qui me semble répondre à mon besoin.

oui je sais modifier une macro et lui associer un raccourci.

Je vais faire comme ça et reviendrai si besoin.

Bon w-end.

Rudika

Debrief
 Posté le 03/02/2017 à 10:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ok, je t'ai mis le fichier .xlm qui fait tout d'un coup en modif du post précédent.

rudika
 Posté le 03/02/2017 à 11:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

je t'ai mis le fichier .xlm ... comment puis-je le récupérer ?

merci encore

Rudika

Debrief
 Posté le 03/02/2017 à 11:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Il faut aller / cliquer sur le lien indiqué, recopié ici -> http://www.cjoint.com/c/GBdj5G1g5Zo puis et ensuite le télécharger.

Il faudra l'ouvrir sans oublier de et de

Et évidemment de récupérer la macro pour la mettre dans ton propre fichier.

Cordialement,
D.

P.S. Si tu souhaites de améliorations (format de cellule ou autres), n'hésite pas, ce n'est plus grand chose à faire sur cette base.



Modifié par Debrief le 03/02/2017 11:51
Publicité
rudika
 Posté le 03/02/2017 à 12:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

merci.. mais tu vas sans doute trouver que j'exagère..

voici le message d'erreur obtenu après téléchargement..

Lien vers une image externe

oups.. dans tous les cas, j'apprécie ton implication..

Cordialement.

K.

rudika
 Posté le 03/02/2017 à 12:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Debrief
 Posté le 03/02/2017 à 12:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Pas de problème... Mais là je ne sais pas trop quoi te dire car cjoint.com et communément utilisé ici pour partager des fichiers.

Peut-être es-tu dans un réseau d'entreprise qui filtre les fichiers (exe, excels, etc...) ?

A défaut je te l'ai placé sur mon Dropbox en changeant l'extension en .pdf -> https://www.dropbox.com/s/c7gewgu0i5vhgef/MacroInsertion.pdf?dl=0
Extension à changer en .xlsm dès que tu l'as téléchargé si tu y arrives.

Quelle est ta version d'Excel ?



Modifié par Debrief le 03/02/2017 12:26
rudika
 Posté le 03/02/2017 à 12:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

super !!

je l'ai. mille merci à toi.

Cette fois je vais pouvoir traduire tout ceci dans mes extractions..

Cordialement.

K.

rudika
 Posté le 03/02/2017 à 12:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Cher(e) D,

la macro est très bien détaillée.. je vais pouvoir apprendre en comprenant bien grâce à tes explications en vert.

merci

K.

ferrand
 Posté le 04/02/2017 à 11:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

A toutes fins utiles, CJoint, depuis pas mal de temps maintenant transforme les extensions xlsm en xlsx. Il faut rétablir xlsm pour ouvrir un fichier avec macro.

Cordialement.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Aucun sujet pertinent lié trouvé
 > Tous les forums > Forum Bureautique