Macro qui me fige une cellule à copier
Résolu
shalkare
-
shalkare -
shalkare -
Bonjour,
J'ai chercher une solution sur pas mal de forums, mais...
Donc merci par avance à celles et ceux qui vont se creuser la tête.
Mon problème:
Excel fige une cellule
=SOMME($J$2:$J$4340 )
que j'aimerais copier.
Explication:
J'utilise une macro pour totaliser une colonne, et afficher le résultat dans une cellule.
Comme j'ai 5 colonnes à totaliser, j'ai fait une sélection de la cellule (contenant la formule), et un copier par "autofill" sur les cellules adjacentes (J4 vers O4, par exemple)
Sauf qu'au lieu de me copier la formule, ça me copie le résultat de la première colonne.
Après recherche, je m'aperçois qu'excel a figé les coordonnées de la cellule, rendant l'utilisation de l'autofill obsolète.
voici un bout de la macro:
' b- faire la somme d'une colonne et l'afficher dans la première cellule total
Dim PlageTotaux As Range 'Déclare "PlageTotaux" comme étant une sélection
Set PlageTotaux = ActiveSheet.Range(Cells(MyRow, 10), Cells(2, 10)) 'Cellules faisant partie de "PlageTotaux"
ActiveSheet.Cells(MyRow + 1, 10).Formula = "=SUM(" & PlageTotaux.AddressLocal & " )" 'donne à la bonne cellule la formule "SOMME de PlageTotaux"
' c- extension de la première cellule total, pour avoir une ligne de totaux
Cells(MyRow + 1, 10).Select
Selection.AutoFill Destination:=Range(Cells(MyRow + 1, 10), Cells(MyRow + 1, 15)), Type:=xlFillDefault
RESULTAT: dans la cellule total de la colonne, j'ai la formule
=SOMME($J$2:$J$4340 )
les autres cellules contiennent donc exactement la même formule, alors que l'autofill (selon ce que j'en connais) aurait dû me mettre à jour les coordonnées.
j'ai essayé d'autre façon de faire le copier coller, mais... je n'ai pas encore trouvé.
quelqu'un pourrait'il m'éclairer de la lumière de ses connaissances, svp ? parceque là, je craque ! ;)
d'avance, merci
J'ai chercher une solution sur pas mal de forums, mais...
Donc merci par avance à celles et ceux qui vont se creuser la tête.
Mon problème:
Excel fige une cellule
=SOMME($J$2:$J$4340 )
que j'aimerais copier.
Explication:
J'utilise une macro pour totaliser une colonne, et afficher le résultat dans une cellule.
Comme j'ai 5 colonnes à totaliser, j'ai fait une sélection de la cellule (contenant la formule), et un copier par "autofill" sur les cellules adjacentes (J4 vers O4, par exemple)
Sauf qu'au lieu de me copier la formule, ça me copie le résultat de la première colonne.
Après recherche, je m'aperçois qu'excel a figé les coordonnées de la cellule, rendant l'utilisation de l'autofill obsolète.
voici un bout de la macro:
' b- faire la somme d'une colonne et l'afficher dans la première cellule total
Dim PlageTotaux As Range 'Déclare "PlageTotaux" comme étant une sélection
Set PlageTotaux = ActiveSheet.Range(Cells(MyRow, 10), Cells(2, 10)) 'Cellules faisant partie de "PlageTotaux"
ActiveSheet.Cells(MyRow + 1, 10).Formula = "=SUM(" & PlageTotaux.AddressLocal & " )" 'donne à la bonne cellule la formule "SOMME de PlageTotaux"
' c- extension de la première cellule total, pour avoir une ligne de totaux
Cells(MyRow + 1, 10).Select
Selection.AutoFill Destination:=Range(Cells(MyRow + 1, 10), Cells(MyRow + 1, 15)), Type:=xlFillDefault
RESULTAT: dans la cellule total de la colonne, j'ai la formule
=SOMME($J$2:$J$4340 )
les autres cellules contiennent donc exactement la même formule, alors que l'autofill (selon ce que j'en connais) aurait dû me mettre à jour les coordonnées.
j'ai essayé d'autre façon de faire le copier coller, mais... je n'ai pas encore trouvé.
quelqu'un pourrait'il m'éclairer de la lumière de ses connaissances, svp ? parceque là, je craque ! ;)
d'avance, merci
A voir également:
- Macro qui me fige une cellule à copier
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment copier une vidéo youtube - Guide
- Aller à la ligne dans une cellule excel - Guide
- Mon écran se fige et plus rien ne répond - Guide
- Super copier - Télécharger - Gestion de fichiers
2 réponses
Bonjour,
A priori le problème vient de cette instruction :
ActiveSheet.Cells(MyRow + 1, 10).Formula = "=SUM(" & PlageTotaux.AddressLocal & " )"
car par defaut AddressLocal renvoi la référence en absolu il faut donc lui spécifier de ne pas le faire en ajoutant des paramétres comme ceci :
= "=SUM(" & PlageTotaux.AddressLocal (RowAbsolute:=False, ColumnAbsolute:=False) & " )"
Ou en libérant seulement les lignes, ou seulement les colonnes.
A+
A priori le problème vient de cette instruction :
ActiveSheet.Cells(MyRow + 1, 10).Formula = "=SUM(" & PlageTotaux.AddressLocal & " )"
car par defaut AddressLocal renvoi la référence en absolu il faut donc lui spécifier de ne pas le faire en ajoutant des paramétres comme ceci :
= "=SUM(" & PlageTotaux.AddressLocal (RowAbsolute:=False, ColumnAbsolute:=False) & " )"
Ou en libérant seulement les lignes, ou seulement les colonnes.
A+