macro insertion lignes dans deux feuilles - VB/VBA/VBS - Programmation
Marsh Posté le 11-08-2009 à 09:06:40
Essaye plutôt d'utiliser directement le .formula, comme là :
Code :
|
Je ne suis, par contre, pas sur de savoir si tu veux que les formules, ainsi que la position de départ, dans la feuille 11 soient prit à partir de la cellule active de la feuille 11 ou bien de la feuille 9...
Marsh Posté le 11-08-2009 à 14:06:56
Bonjour,
Je te remercie pour ton aide.
Quand j'essaie ta macro ,un message apparait :
"l'indice ne correspond pas à la selection"
Marsh Posté le 11-08-2009 à 14:11:48
J'ai modifié légèrement le code pour coller à ce que tu demandes, donc il prend comme point de départ la cellule active dans la feuille 9 et insère des lignes en dessous, et dans la feuille 11 au même endroit, avec la même formule que la cellule active.
Code :
|
Testé et approuvé
PS : oublie pas de changer "nom_de_ta_feuille_"... par le nom des feuilles correspondantes
Marsh Posté le 11-08-2009 à 14:42:29
De plus j'ai essayé ta macro dans deux feuilles elle insére le nombre de ligne sur l'onglet 9 mais pas sur l'onglet 11.
Sur l'onglet 9 elle insére le nombre de ligne choisit par l'utilisateur et elles insére des lignes en plus.
J'aimerais que les fomules évoluent aussi car l'onglet 9 fait référence à une autre feuille.
Par exemple si en onglet 9,la cellule active est F8 :
dans cette cellule ,la formule est =feuille 1!F8 + feuille2!F8
Si j'ajoute deux lignes en dessous de cette cellule,les formules des deux lignes ajouté doivent être :
F9=feuille 1!F9+ feuille2!F9
F10=feuille 1!F10+ feuille2!F10
Merci
Marsh Posté le 11-08-2009 à 15:04:36
Essaye ceci
Code :
|
Marsh Posté le 11-08-2009 à 15:17:56
Là ça me met erreur 400.
Et en fait ,j'aimerais recopier toutes les formules de la ligne de la cellule active sur les lignes insérées.
Dans la feuille 9,il y a des formules différentes de celles de la feuille 11.
Chaque feuilles doit garder ses propres formules ,c'est juste le point de départ,le nombre de lignes ajouté,l'action de copie coller formules qui sont les mêmes.
Je suis désolé ,je manque de précision dans ma demande...
Merci.
Marsh Posté le 11-08-2009 à 15:41:54
Peux-tu préciser le texte de l'erreur et quelle ligne est surlignée, car ce code fonctionne chez moi...
Par contre, je suis désolé, je ne comprend pas ce que tu désires. J'espère que ce que je t'ai donné pourra quand même t'aider...
Marsh Posté le 11-08-2009 à 15:51:36
Je ne veux pas la copie que des formules de la cellule active mais la copie de toutes les formules de la ligne de la cellule active.
Merci tu m'a bien aidé.
Marsh Posté le 11-08-2009 à 16:00:00
kro24 a écrit : Je ne veux pas la copie que des formules de la cellule active mais la copie de toutes les formules de la ligne de la cellule active. |
Dans ce cas, essaye en changeant
Code :
|
par
Code :
|
Marsh Posté le 10-08-2009 à 19:49:44
Bonjour,
Je débute en VBA et j'ai des difficultés à faire une macro.
Ma macro consiste à ajouter des lignes simultanément dans deux feuilles.
L'uilisateur appuie sur un bouton ,une boite de dialogue apparait demandant combien de ligne l'utilisateur désire ajouter.
L'utilisateur tape un chiffre et ce chiffre correpond au nombre de lignes insérés après la cellule active(avec copie des formules de la cellule active).
Jusque là tout va bien.
J'aimerais modifier ma macro en voulant ajouter le même nombre de lignes (avec copie de la formule de la cellule active ) en feuille 9 puis en feuille 11 (avec copie des formules)au même endroit.
Pouvez vous m'aider?
Je vous envoie la macro que j'ai commencé:
Sub Macro2()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim I, NbLigne As Variant
NbLigne = InputBox("How many rows do you want to add? ", "Nombre de lignes à inserer" )
For I = 1 To NbLigne
Feuil9ligne = Val(ActiveCell.Row)
Feuil11ligne = Val(ActiveCell.Row)
ligne1 = ligne + 1
ad = "A" & ligne & ":DA" & ligne
cellule = "A" & ligne1
Feuil9.Cells(l, 1).Select
Selection.EntireRow.Insert
Feuil11.Cells(l, 1).Select
Selection.EntireRow.Insert
Range(ad).Select
Selection.Copy
Range(cellule).Select
ActiveSheet.Paste
Range(ad1).Select
Next I
End Sub