Les Allergies
Alimentaires
Posez votre question Signaler

Macro recopie incrémentée [Résolu]

ValentinISSBA 24Messages postés 5 juin 2009Date d'inscription 15 janvier 2012Dernière intervention - Dernière réponse le 10 mars 2010 à 14:56
Bonjour,
Je suis à la recherche d'une macro permettant de faire une recopie incrémentée d'une ligne préalablement insérée.
Le soucis est que la macro devra s'appliquer en fonction de la sélection. J'ai déjà trouvé des macros mais la ligne incrémentée reste fixe or je souhaite appliquer cette macro à plusieurs lignes.
Cordialement.
Merci.
Lire la suite 

Macro recopie incrémentée »

8 réponses
Réponse
+0
moins plus
Bonjour,
Le soucis est que la macro devra s'appliquer en fonction de la sélection Je ne comprends pas ta question... Peux tu donner un exemple concret de ce que tu souhaites?
Ajouter un commentaire
Réponse
+0
moins plus
En fait l'idée est que je souhaite insérer une ligne et que cette nouvelle ligne comporte les formules des lignes déjà présentes.
La macro que j'ai trouvé :

Range("C9:P9").Select
Selection.AutoFill Destination:=Range("C9:P10"), Type:=xlFillDefault

Fait une recopie incrémentée de ma ligne 9 de la colonne C à P sur la ligne 10 de la colonne C à P.

Or je souhaiterais que cette recopie incrémentée se fasse en fonction de la ligne que j'ai sélectionné. En gros le numéro de ligne (9 dans mon exemple) devient une variable.

Donc en gros j'utilise la macro :

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Pour insérer une ligne et j'aimerais que cette nouvelle ligne possède les formule de la ligne supérieure, par recopie incrémentée ou autre si vous avez d'autres solutions je suis preneur.

Merci.
Ajouter un commentaire
Réponse
+0
moins plus
Alors :
Effectivement, il faut définir une variable qui stocke le n° de ligne insérée :

Dim ligne As Integer
ligne = ActiveCell.Row 'ligne = n° de ligne ou l'on a préalablement 
'sélectionné une cellule
Rows(ligne).Insert Shift:=xlDown 'on insère une ligne
Range(Cells(ligne - 1, 3), Cells(ligne - 1, 16)).Select 'on sélectionne les cellules
'contenant des formules dans la ligne précédente
Selection.AutoFill Destination:=Range(Cells(ligne - 1, 3), Cells(ligne, 16)) 
'on incrémente ces cellules vers le bas
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Merci j'essaie ca tout de suite.
Ajouter un commentaire
Réponse
+0
moins plus
Cool.
Ça fonctionne. Là ou je galérais c'était pour nommer le numéro de ligne aléatoire mais grâce a toi tout fonctionne.
Merci encore.
Ajouter un commentaire
Réponse
+0
moins plus
Désolé mais j'ai un nouveau petit soucis.
Certaines cellules que j'incrémente sont remplies par des nombres et non des formules.
Comment spécifier que l'incrémentation ne doit pas changer mon 1 et 2 par exemple (un peu comme la touche Ctrl quand on fait un incrémentation manuelle).

J'ai cru comprendre qu'on pouvait le spécifier par un paramètre de Autofill noté ,Type:=
Mais lequel paramètre utiliser?

Merci
pijaku- 10 mars 2010 à 13:48
Je ne connais pas la spécificité de tous ces paramètres. Je peux juste vous les lister grâce à l'aide VBA, à vous ensuite de tester celui qui vous convient le mieux.
Arguments XlAutoFillType facultatif :
XlAutoFillType peut être l'une de ces constantes XlAutoFillType.
xlFillDays
xlFillFormats
xlFillSeries
xlFillWeekdays
xlGrowthTrend
xlFillCopy
xlFillDefault default
xlFillMonths
xlFillValues
xlFillYears
xlLinearTrend
Si vous affectez à cet argument la valeur xlFillDefault ou que vous ne le spécifiez pas, Microsoft Excel sélectionne le type de recopie le plus approprié en fonction de la plage source

S'il s'agit de nombres, on peux également les exclure du Range que l'on "autofill"...
Ajouter un commentaire
Réponse
+0
moins plus
Merci en testant j'ai trouvé celui qui me convenait.

Pour info ,Type:=xlFillCopy

Merci encore bonne journée.
Ajouter un commentaire
Ce document intitulé « Macro recopie incrémentée » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?