Formule avec variable
Résolu/Fermé
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
-
7 déc. 2015 à 11:49
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 7 déc. 2015 à 20:07
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 - 7 déc. 2015 à 20:07
A voir également:
- Formule avec variable
- Formule si et - Guide
- Formule somme excel colonne - Guide
- Formule excel moyenne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule - Télécharger - Études & Formations
11 réponses
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
7 déc. 2015 à 12:30
7 déc. 2015 à 12:30
L'erreur est réglée en modifiant la boucle k
Public Sub OK()
Dim adr1 As String, adr2 As String, f As String, k As Long
Dim Tadr()
'Tadr = Array("L7", "M8", "N9", "L10", "O11")
Tadr = Array("L7")
For k = 1 To 1
adr1 = Tadr(k)
adr2 = Range(adr1).Offset(0, -7).Address
f = "= SI(" & adr2 & "<MAX($C$11:$C$25);" & adr2 & "+1;1)"
Range(adr1).FormulaLocal = f
Next k
End Sub
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
7 déc. 2015 à 11:53
7 déc. 2015 à 11:53
Voir ici
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
7 déc. 2015 à 12:22
7 déc. 2015 à 12:22
Merci ccm81
Etant donné que je n'ai besoin que de la cellule L7
j'ai modifié ainsi
Mais j'obtiens l'erreur "l'indice n'appartient pas à la sélection"
2éme souci: la cellule cible " $E$7" est figée donc impossible à étirer.
merci à toi
Etant donné que je n'ai besoin que de la cellule L7
j'ai modifié ainsi
Public Sub OK()
Dim adr1 As String, adr2 As String, f As String, k As Long
Dim Tadr()
Tadr = Array("L7")
For k = 1 To 5
adr1 = Tadr(k)
adr2 = Range(adr1).Offset(0, -7).Address
f = "= SI(" & adr2 & "<MAX($C$11:$C$25);" & adr2 & "+1;1)"
Range(adr1).FormulaLocal = f
Next k
End Sub
Mais j'obtiens l'erreur "l'indice n'appartient pas à la sélection"
2éme souci: la cellule cible " $E$7" est figée donc impossible à étirer.
merci à toi
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 7/12/2015 à 13:51
Modifié par ccm81 le 7/12/2015 à 13:51
En fait L7 est une variable mais restera toujours sur la ligne 7 ( ça peut etre i7,K7,J7....): ?
Etant donné que je n'ai besoin que de la cellule L7
Pas très clair !
ceci suffira
Cdlmnt
Etant donné que je n'ai besoin que de la cellule L7
Pas très clair !
ceci suffira
Public Sub OK()
Dim adr1 As String, adr2 As String, f As String
adr1 = "L7"
adr2 = Range(adr1).Offset(0, -7).Address
f = "= SI(" & adr2 & "<MAX($C$11:$C$25);" & adr2 & "+1;1)"
Range(adr1).FormulaLocal = f
End Sub
Cdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
7 déc. 2015 à 14:29
7 déc. 2015 à 14:29
bonjour
Je vous joins le code en entier qui me sert à
1- repérer le lundi de la ligne des jours
2- Coller la formule sur la 2éme cellulle au dessus en faisant intervenir la 8éme cellule à gauche et le Max de la plage (C11:C25)
3- D'étirer la formule jusqu'à EI7
4- de fusionner toutes les cellulles contigues contenant les memes valeurs
Ca bloque au niveau de la formule
Merci de votre aide
Je vous joins le code en entier qui me sert à
1- repérer le lundi de la ligne des jours
2- Coller la formule sur la 2éme cellulle au dessus en faisant intervenir la 8éme cellule à gauche et le Max de la plage (C11:C25)
3- D'étirer la formule jusqu'à EI7
4- de fusionner toutes les cellulles contigues contenant les memes valeurs
Ca bloque au niveau de la formule
Merci de votre aide
Sub Odogas()
With Sheets("plan")
Range("A7:ei7").ClearContents
Range("A7:ei7").UnMerge
Dim plage As Range
Dim ror As Range
Dim clouc As Range
Dim plouf As Range
For Each plage In Range("$A$9:$p$9")
With plage
If plage.Value = "LU" Then
Set plage = .Offset(0, 0)
'Set ror = plage.Offset(-2, 0)
'Set clouc = plage.Offset(2, 0)
Set plouf = plage.Offset(-2, -7)
ror.FormulaLocal = "=SI(" & plouf & "<MAX($C11:$C25);" & plouf & "+1;1)"
ror.AutoFill Destination:=Range(ror.Address & ":ei7"), Type:=xlFillDefault
Range(ror.Address & ":ei7").Font.ThemeColor = xlThemeColorDark1
Range(ror.Address & ":ei7").Font.Color = -16776961
End If
End With
Next
Dim ii As Long
For ii = .Cells(7, .Columns.Count).End(xlToLeft).Column To 2 Step -1
If UCase(.Cells(7, ii)) = UCase(.Cells(7, ii - 1)) Then
.Cells(7, ii - 1) = ""
.Range(Cells(7, ii), Cells(7, ii - 1)).Merge
.Range(Cells(7, ii), Cells(7, ii - 1)).Font.ColorIndex = xlAutomatic
'.Range(Cells(7, ii), Cells(7, ii - 1)).HorizontalAlignment = xlCenter
End If
Next ii
end sub
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
7 déc. 2015 à 14:35
7 déc. 2015 à 14:35
Sans la partie concernée de ton fichier, difficile de te répondre
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
7 déc. 2015 à 14:47
7 déc. 2015 à 14:47
Désolée
le fichier ci dessous ; macro déclenchée par le bouton
http://www.cjoint.com/c/ELhnUlb7u5A
le fichier ci dessous ; macro déclenchée par le bouton
http://www.cjoint.com/c/ELhnUlb7u5A
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
7 déc. 2015 à 16:47
7 déc. 2015 à 16:47
en étudiant bien ta formule , j'ai réussi à trouver le bon code
ce qui donne sur le tableau "= SI($E$7<MAX($C$11:$C$25);$E$7+1;1)"
mais je ne peux pas l'étirer à cause du $E$7 fixé par la macro
Une idée pour "défixer" la cellule dans la macro?
cordialement
Dim adr1 As String, adr2 As String, f As String
adr1 = ror.Address
adr2 = Range(ror.Address).Offset(0, -7).Address
f = "= SI(" & adr2 & "<MAX($C$11:$C$25);" & adr2 & "+1;1)"
Range(adr1).FormulaLocal = f
ce qui donne sur le tableau "= SI($E$7<MAX($C$11:$C$25);$E$7+1;1)"
mais je ne peux pas l'étirer à cause du $E$7 fixé par la macro
Une idée pour "défixer" la cellule dans la macro?
cordialement
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
7 déc. 2015 à 17:59
7 déc. 2015 à 17:59
J'ai un peu de mal à comprendre la logique de ton organisation.
Si j'ai compris, la formule f est destinée à être copiée vers la droite, il suffit donc d'enlever le 1° $ à adr2
Cdlmnt
Si j'ai compris, la formule f est destinée à être copiée vers la droite, il suffit donc d'enlever le 1° $ à adr2
adr2 = Range(ror.Address).Offset(0, -7).Address
adr2=right(adr2,len(adr2-1))
Cdlmnt
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
7 déc. 2015 à 18:27
7 déc. 2015 à 18:27
Génialissime !!!!!!
la fonction len() a réglé le probléme.
En fait tu as tout bien compris
juste une petite erreur dans ton code que j'ai corrigé.
tout marche
merci à toi
la fonction len() a réglé le probléme.
En fait tu as tout bien compris
juste une petite erreur dans ton code que j'ai corrigé.
tout marche
merci à toi
Dim adr1 As String, adr2 As String, f As String
adr1 = ror.Address
adr2 = Range(ror.Address).Offset(0, -7).Address
adr2 = Right(adr2, Len(adr2) - 1)
f = "= SI(" & adr2 & "<MAX($C$11:$C$25);" & adr2 & "+1;1)"
Range(ror.Address & ":ei7").FormulaLocal = f
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
7 déc. 2015 à 20:07
7 déc. 2015 à 20:07
juste une petite erreur dans ton code que j'ai corrigé.
Mea culpa, je n'ai pas vérifié
Bonne soirée
Mea culpa, je n'ai pas vérifié
Bonne soirée