> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
115,40 €Alimentation modulaire Corsair RM750X 80+ Gold à 115,40 €
Valable jusqu'au 22 Septembre

Amazon propose actuellement l'alimentation modulaire Corsair RM750X à 115,40 € livrée gratuitement. Cette alimentation de 750W est certifiée 80+ Gold et est garantie 10 ans. Entièrement modulaire, vous pourrez brancher uniquement les câbles (fournis) dont vous avez besoin. On la trouve ailleurs à partir de 150 €. 


> Voir l'offre
249,99 €Bureau électrique réglable en hauteur Flexispot EB2 à 249,99 €
Valable jusqu'au 22 Septembre

Amazon fait une promotion sur le bureau éléctrique assis-debout Flexispot EB2 qui passe à 249,99 € grâce à un coupon à activer sur la page du produit. On le trouve ailleurs à 379,99 €. La livraison est gratuite. 

Construction robuste et stable. Le mécanisme élevé de 2 moteurs vous permet des ajustement de la hauteur plus lisse, une meilleure stabilisation et un moindre bruit en mouvement. Le châssis double tube en acier assure la stabilité même à la hauteur maximale. Ajustez à la bonne hauteur et regagnez un espace de travail précieux avec le bureau debout pour concevoir votre bureau à domicile et télétravail. Système anticollision avec des objets obstruant la trajectoire du mouvement. Sa télécommande filaire vous permet d'enregistrer votre 3 hauteurs préférées afin de les retrouver facilement.

Convient pour des plateaux (trouvables chez Amazon, Ikea, Leroy Merlin, ...) de 120 cm à 180 cm de largeur, et de 60 à 80 cm de profondeur, réglable en hauteur (sans plateau): de 71 cm à 120 cm à 32mm/s, capacité de charge maximale : 100kg.

 


> Voir l'offre
104,46 €SSD Interne M.2 NVMe Samsung 970 Evo Plus 1 To à 104,46 € livré
Valable jusqu'au 23 Septembre

Amazon Allemagne fait une promotion sur le SSD Interne M.2 NVMe Samsung 970 Evo Plus 1 To qui passe à 99,83 € (avec la TVA ajustée). Comptez 4,63 € pour la livraison en France soit un total de 104,46 € livré. On le trouve ailleurs autour de 140 €. Ce SSD offre des taux de transfert de 3400 Mo /s en lecture et 2300 Mo/s en écriture. 

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane.


> Voir l'offre

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