Faire une macro avec une boucle et un InputBox

Gudo

XLDnaute Junior
Bonjour à tout le Forum

J’ai une macro qui me permet d’insérer des lignes dans un tableau et qui recopie également des cellules qui sont situées sur la même ligne mais hors du tableau.

Code:
Sub Ligne_Insertion()

' Intertion de ligne

    ActiveCell.Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    [dernièreligneTotale].Copy Cells(ActiveCell.Row, 2).Resize(Selection.Rows.Count, 15)
    
End Sub

La macro fonctionne parfaitement.
Mais si je veux insérer 10 lignes, il me faut actionner la macro 10 fois !

Je ne connais pas bien les boucles, Je suppose qu’une macro avec un InputBox pour rentrer le nombre désiré d’insertions souhaitées et une boucle pour renouveler le code d’insertion ferait l’affaire.

Peut-être que quelqu’un à réaliser ce genre de macro ?

Merci d’avance
 
Dernière édition:

Gudo

XLDnaute Junior
Re : Faire une macro avec une boucle et un InputBox

Bonjour

Oui je sais, j'avais fait l'essai avant mon dernier post
Mais dans mon fichier, qui a pourtant la même architecture, cela ne fonctionne pas
Tout ce qui est à l'intérieur du tableau est copié, mais pas ce qui est hors du tableau
Et je n'ai pas trouvé la raison ???

A+
 

vgendron

XLDnaute Barbatruc
Re : Faire une macro avec une boucle et un InputBox

Bon. recopier ton dernier post, ca ne répond pas la question..

mais. pour etre sur ..
c'est bien CE code qui fonctionne


Code:
Sub Insertion_3()

Dim Nb As Single

'pour demander le nombre de boucles
    Nb = CInt(Application.InputBox("Nombre d'insertion souhaitées ?", "Insertion de lignes", 1, Type:=1))
       'Intercepte l'utilisation du bouton "Annuler" et la croix de fermeture.
       If Nb = 0 Then Exit Sub
   
Application.ScreenUpdating = False 'Pour bloquer le calcul


'Insertion de ligne
    ActiveCell.Rows("1:" & Nb).EntireRow.Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    [dernièreligneTotale].Copy Cells(ActiveCell.Row, 2).Resize(Selection.Rows.Count, 24)
    

Application.ScreenUpdating = True 'Pour réactiver le calcul automatique

End Sub

Tableau2 étant la TABLE B1:p18
DernièreLigneTotale étant: B18:Y18

si je rajoutte des lignes, les colonnes B à Y sont remplies sur toutes les lignes..
que je clique DANS la table ou en dehors de la table.
 

Gudo

XLDnaute Junior
Re : Faire une macro avec une boucle et un InputBox

Bonjour

Je viens de trouver le problème
La DernièreLigneTotal dans mon fichier correspond aux cellules « B647 :Z647 »
Soit une colonne de plus que la dernière colonne remplie.
Je fais toujours cela de manière à englober toute nouvelle colonne que je viendrai placer après la colonne Y
Bien qu'il n'y a donc rien dans la colonne Z, elle fait donc partie de "DernièreLigneTotal"
Et en fait il faut mettre 25 et non 24.

Je ne m'explique pas bien pourquoi, mais cela venait de là.
A présent cela fonctionne parfaitement

Je te remercie beaucoup pour ton aide
Et pour ta persévérance !

A+
 

Statistiques des forums

Discussions
315 093
Messages
2 116 122
Membres
112 666
dernier inscrit
Coco0505