XL 2019 Changer le pas d'incémentation des cordonnées d'une cellule lors d'une copie

SPGoder

XLDnaute Occasionnel
Bonjour
Je me demandais si il était possible, (et je suis sur que oui, car tout le monde galère pas bêtement comme moi), lorsqu'une incrémentation d'une coordonnées de cellule dépasse le +1, il faut modifier chaque cellule à la main. (j'ai passer plus de 2h sur le net à chercher, mais rien de probant, tel que decaler, concatener...)
Je m'explique
Sur une feuille 1, j'ai des valeur que je souhaite récupérer sur une feuille 2
Ces valeurs apparaissent toutes les 10 lignes: en A1; A11, A21... etc (une centaine comme cela) sur la feuille 1
Sur la feuille 2, Je voudrais par exemple
en A1, =Feuil1!A1
en A2 =Feuil1!A11
en A3 =Feuil1!A21
Pour ce faire, j’écris ma formule dans A1 de la feuille 2, et je tire la petite croix pour copier ma formule pour les cellules en dessous.
Mais l'incrémentation se fait de 1.
A=Feuil1!A1
A2 =Feuil1!A2
A3=Feuil1!A3
donc je modifie chaque cellule manuellement. (une centaine.......la galère)
Comment faire pour que l'incrémentation soit de 10
Merci d'avance pour le temps que vous allez me faire économiser
 
Dernière édition:

Graveling

XLDnaute Junior
Salut,

Si tes données demarrent à la ligne 1, tu peux faire:
en A1
VB:
A1 = Feuil1!A1
en A2
Code:
DECALER(Feuil1!A1;10*(ligne()-1);)
et tu fais glisser la formule.

en gros pour la cellule A2 tu vas te decaler de 10*(2eme ligne - 1), c-à-d 10 lignes vers le bas,
en A3, tu vas te décaler de 10*(3eme ligne - 1), c-a-d 20 lignes
 

SPGoder

XLDnaute Occasionnel
Et question pour xUpsilon, si le début de ma copie sur la feuille 2 est en G5 par exemple, comment je dois modifier la macro (je connais peu ou pas VB)
c'est bon, après de petits essais, j 'ai trouvé
Merci à vous 2 et bonne continuation
 
Dernière édition:

xUpsilon

XLDnaute Accro
Reprenons le code :
VB:
Sub Bouton1_Cliquer()
For i = 1 To 10
    Range("A" & i).FormulaLocal = "=Somme(B" & i * 10 & ":F" & i * 10 & ")"
Next i
End Sub
Quand tu vas cliquer sur le Bouton, une boucle va se lancer : For i = 1 to 10. En gros, i va prendre la valeur 1 puis 2 puis 3 etc jusqu'à s'arreter à 10.
Ce qui va se répéter à chaque fois que i s'incrémente c'est donc cette ligne : Range("A" & i).FormulaLocal = "=Somme(B" & i * 10 & ":F" & i * 10 & ")"
Range("A" & i)
indique qu'on va atteindre la Cellule Ai (A pour la colonne A, i pour la ième ligne -> si i vaut 1, on s'occupera de la ligne 1).
FormulaLocal indique que tu remplis la cellule en question avec une formule qui est le terme indiqué entre guillemets à droite du premier =.
La partie à droite du premier égal est la formule qui va être écrite dans chaque cellule qui sera atteinte par la boucle (càd ici que ça va etre écrit dans A1 A2 .... A9 et A10). Et à chaque fois, comme tu peux le voir, on fait intervenir i : "=Somme(..." & i * 10 & .......)" Le signe & permet de concaténer des termes "textuels" (càd qui vont être recopiés tels que dans ta cellule) avec des variables du code : i notamment ici, qui va être multiplié par 10 pour incrémenter de 10 dans chaque cellule.

Est-ce que j'ai été clair ?

Si tu as la flemme de comprendre, voici la solution pour modifier mon code pour qu'il commence en G5 :
Remplacer Range("A" & i) par Range("G" & i) et indiquer For i = 5 to X avec X la dernière ligne où tu veux insérer la formule.

Bonne continuation
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 107
Membres
103 120
dernier inscrit
83400ren