macro insertion de lignes = nbre de données

chroberto

XLDnaute Nouveau
Bonjour,
je souhaiterai créer une macro qui ajouterai des lignes supplémentaire dans mon tableau de saisie , sous les dernières données.
le nombres de lignes supplémentaires doit correspondre au nombres de données qui sont extraitent par ma macro.
question:
soit je cherche une macro qui compte le nombre de données extraitent et qui insère des lignes * (le nbre de données)?
soit une macro qui à chaque données à saisir, insère une ligne?

est-ce que je cherche dans la bonne direction?

merci pour toutes les aides que vous pourrez m'apporter.
 

Pièces jointes

  • 09 XXX (test) pr info.zip
    36.4 KB · Affichages: 37
  • 09 XXX (test) pr info.zip
    36.4 KB · Affichages: 24
  • 09 XXX (test) pr info.zip
    36.4 KB · Affichages: 26

kllmoon

XLDnaute Occasionnel
Re : macro insertion de lignes = nbre de données

J'ai regardé ton code et c'est une vrai bombe! Tu devrais peut-être chercher la gentillesse des plus expérimentés de ce forum pour t'aider à y faire un bon nettoyage!

Pour répondre à ta question, je ne sais pas ce que ton bouton cherche comme données exactement, comble de paresse je n'ai pas cherché plus de 2 secondes, désolé! Mais pour répondre à ta question, si tu veux savoir combien de lignes sont à ajouter, tu dois d'abord les compter. Pour celà on utilise :

Code:
Dim maplage As Long
maplage = [COUNTA(A1:A10)+1]

Ici on compte le nombre de cellule remplies entre A1 et A10 et cette valeur est affectée à la variable maplage. S'il y a des données de A1 à A10 par exemple, ceci retournera 10 comme valeur à maplage. Le plus 1 est pour ne pas sélectionner la dernière ligne mais plustôt la prochaine. Ensuite on insère les lignes :

Code:
Dim nombredelignes as long
nombredelignes = maplage - 1
Range("A" & maplage).select
while nombredelignes > 0 
Selection.Insert Shift:=xlDown
nombredelignes = nombredelignes -1
wend
End sub

Ce qui te donne le code suivant :
Code:
Private Sub CommandButton1_Click()
Dim maplage As Long
Dim nombredelignes As Long
maplage = [COUNTA(A1:A10)+1]
nombredelignes = maplage - 1
Range("A" & maplage).Select
While nombredelignes > 0
Selection.Insert Shift:=xlDown
nombredelignes = nombredelignes - 1
Wend
End Sub

Tu peux ensuite utiliser Call pour appeler la macro qui poursuit le reste de ton code.
 

chroberto

XLDnaute Nouveau
Re : macro insertion de lignes = nbre de données

merci d'avoir jeté un coup d'oeil à ma macro. Je suis d'accord avec toi au sujet de ce code "c'est une vrai BOMBE" à retardement !!! Mais hélàs, je ne suis encore qu'un noob en macro, mais je ne désespère pas de le pofinner lorsque je serai apte à le faire... en attendant je suis à l'écoute de toute proposition.

quoi qu'il en soit je te remercie pour ton aide et ton bout de code...je vais en faire un usage "atomique" (cf: "nuage atomique = BOMBE").
 

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 867
Membres
103 007
dernier inscrit
salma_hayek