Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Décalage de colonne dans des formules

19 réponses
Avatar
Manu
Bonsoir,

J'ai dans plein de cellules plein de formules différentes. je souhaite
décaler les formules des cellules sélectionner de 3 ou 5 ou x colonnes

Exemple : j'ai en A1 et B1 des formules différentes
en A1 : ='MP TITI'!$A$318+'Mx LOLO'!$E$318
en B1 : =somme(A5:G5)

Je souhaiterais qu'elle se transforme (si je choisi 3 colonnes) :
en A1 : ='MP TITI'!$D$318+'Mx LOLO'!$H$318
en B1 : =somme(D5:J5)

Pas facile à expliquer et à mon avis encore moins facile à réaliser, ais-je
été assez claire...

Merci

Manu


--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

9 réponses

1 2
Avatar
MichD
| En revanche, j'ai mis en A6 : =SOMME(D6:F6)
La fonction a été créée pour des formules ayant des références absolues
et non relatives. De même, je ne l'ai pas testée pour toutes les
formules que l'on peut écrire. Cela se voulait un exemple de ce que l'on
peut faire...et non une garantie pour n'importe quelle formule!
Tu pourrais aussi avoir des références mixes dans la même formule. Ça
augmente la complexité de l'opération.
Ce que je t'offre pour l'instant rend toutes les formules décalées en
références absolues.
Remplace cette section par ceci :
'---------------------------------------------
Sub Exemple()
Dim C As Range, Formule As String
With Worksheets("Feuil1")
For Each C In .Range("Lolo")
With C
'Le chiffre 3 = Décalage du nombre de colonnes vers la droite
'Cette valeur pourrait être négative pour un décalage vers
la gauche.
Formule = Application.ConvertFormula(Formula:=.Formula,
FromReferenceStyle:=xlA1, _
toreferencestyle:=xlRelative, toabsolute:=xlAbsolute)
.Formula = Modif_Formule(Formule, 3)
End With
Next
End With
End Sub
'---------------------------------------------
MichD
Avatar
Manu
Comme dab, je demande certaines choses qui à mon niveau me paraissent
impossible, toutefois je tente en demandant sur ce forum. Pour revenir à
notre problème, tu as raison, il y a toute sorte de formules, des relatives,
absolus, et semi absolu/relatives. Mais pas de soucis, tu m'as tant aidé
Mich, et d'ailleurs, par curiosité, comment connais-tu tant ce produit......
Bonne nuit à tous
Manu
"MichD" a écrit dans le message de groupe de discussion :
rito5s$ka6$
| En revanche, j'ai mis en A6 : =SOMME(D6:F6)
La fonction a été créée pour des formules ayant des références absolues
et non relatives. De même, je ne l'ai pas testée pour toutes les
formules que l'on peut écrire. Cela se voulait un exemple de ce que l'on
peut faire...et non une garantie pour n'importe quelle formule!
Tu pourrais aussi avoir des références mixes dans la même formule. Ça
augmente la complexité de l'opération.
Ce que je t'offre pour l'instant rend toutes les formules décalées en
références absolues.
Remplace cette section par ceci :
'---------------------------------------------
Sub Exemple()
Dim C As Range, Formule As String
With Worksheets("Feuil1")
For Each C In .Range("Lolo")
With C
'Le chiffre 3 = Décalage du nombre de colonnes vers la droite
'Cette valeur pourrait être négative pour un décalage vers
la gauche.
Formule = Application.ConvertFormula(Formula:=.Formula,
FromReferenceStyle:=xlA1, _
toreferencestyle:=xlRelative, toabsolute:=xlAbsolute)
.Formula = Modif_Formule(Formule, 3)
End With
Next
End With
End Sub
'---------------------------------------------
MichD
--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
MichD
Le mieux que je puis faire est d'avoir un résultat en référence relative
ou absolue.
De A1 à A3, tu as 3 types de formules différentes et cela fonctionne
pour toutes. Évidemment, je n'ai pas testé pour toutes les formules
possibles. Si ceci peut te dépanner...
Explication dans la procédure du module de la feuille.
https://www.cjoint.com/c/JIfb5Hb034v
MichD
Avatar
MichD
Oublie le message précédent, je ne t'ai pas envoyé le bon fichier!
https://www.cjoint.com/c/JIfcmLnXCUv
MichD
Avatar
Manu
Bonjour,
Merci beaucoup Mich, quoi qu'il en soit ca me fera encore gagner beaucoup de
temps.
Bon WE à tous.
Manu
"MichD" a écrit dans le message de groupe de discussion :
rius89$2nt$
Oublie le message précédent, je ne t'ai pas envoyé le bon fichier!
https://www.cjoint.com/c/JIfcmLnXCUv
MichD
--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
MichD
Un dernier fichier qui explique un peu plus le code avec divers exemples
de formules. Les intraitables par la procédure, je te laisse les
trouver, ce ne devrait pas être trop difficile ;-)
Tu pourras t'amuser à améliorer la procédure!
https://www.cjoint.com/c/JIfm5QxXSlF
MichD
Avatar
MichD
Le 05/09/20 à 09:01, MichD a écrit :
Un dernier fichier qui explique un peu plus le code avec divers exemples
de formules. Les intraitables par la procédure, je te laisse les
trouver, ce ne devrait pas être trop difficile ;-)
Tu pourras t'amuser à améliorer la procédure!
https://www.cjoint.com/c/JIfm5QxXSlF
MichD

Une dernière version améliorée qui permet de décaler les adresses des
formules d'un nombre X de lignes et Y de colonnes selon ses besoins.
https://www.cjoint.com/c/JIgmNA0OZQh
MichD
Avatar
Manu
Bonjour,
Impressionnant ! Quel travail réalisé ! Un grand grand merci à toi Mich, tu
as dû passer tant de temps.....
Ca fonctionne nickel et en plus tes explications dans le code sont
précieuses.
Merci de prendre de ton temps pour nous en faire gagner à tous.
Manu
"MichD" a écrit dans le message de groupe de discussion :
rj2ld2$b2$
Le 05/09/20 à 09:01, MichD a écrit :
Un dernier fichier qui explique un peu plus le code avec divers exemples
de formules. Les intraitables par la procédure, je te laisse les trouver,
ce ne devrait pas être trop difficile ;-)
Tu pourras t'amuser à améliorer la procédure!
https://www.cjoint.com/c/JIfm5QxXSlF
MichD

Une dernière version améliorée qui permet de décaler les adresses des
formules d'un nombre X de lignes et Y de colonnes selon ses besoins.
https://www.cjoint.com/c/JIgmNA0OZQh
MichD
--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
MichD
Merci de prendre de ton temps pour nous en faire gagner à tous.

Je suis à la retraite depuis un bon moment. Je n'utilise plus Excel que
pour répondre aux questions ici, pour le plaisir.
J'ai corrigé la dernière version qui générait une erreur lors de
plusieurs répétitions...je vais m'arrêter ici.
https://www.cjoint.com/c/JIhmFEW0u2S
MichD
1 2