Bonjour,
Je tiens à dire que j'ai vraiment cherché partout sur le net et sur différents sites, mais je n'ai pas trouvé l'information.
J'ai le code suivant :
J'obtiens une erreur sur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 'Dim ME as Range => J'ai compris que je devais supprimer cela et je viens de le faire ^^ With Application .DisplayAlerts = False .DisplayStatusBar = True .CutCopyMode = False .ScreenUpdating = True End With Range("CO1").Select On Error Resume Next ME = Application.InputBox(prompt:="Bonjour " & Application.UserName & Chr(13) & "Merci de cliquer sur le titre de la colonne souhaitée", Title:="Mois Exemple", Type:=8) On Error GoTo 0 With Application .DisplayAlerts = True .ScreenUpdating = False .DisplayStatusBar = False End With If ME.Address = ("CG1") Then Range("CG2") = T2 / 100 Range("CG2").AutoFill Range("CG2:CG" & Range("CG65536").End(xlUp).Row) End IfJe souhaite simplement récupérer la range saisie par l'application.inputbox. Je sais que "ME.address" me donnera la range, mais je souhaite écrire une formule dans la colonne de la range... Je sais qu'il existe des solutions alternatives du type "ME. copy destination:=Sheets("Feuil2").range("A1")
Code : Sélectionner tout - Visualiser dans une fenêtre à part If MoisETP.Address = ("CG1") Then
If Range("A1") = "CG1" then
blablabla
end if
mais je ne souhaite pas utiliser cela pour ma macro a moins d'y être absolument contraint.
Avez vous une solution pour moi ?
Edit : J'ai continué mes recherches et j'ai trouvé cela :
Je ne sais pas si je suis sur la bonne piste, mais je vais creuser dans ce sens. Je vous tiens au courant, ça pourrait aider quelqu'un d'autre ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set CME= ME.Item(1).Column
J'ai réussi à contourner le problème pour que mon code fonctionne, mais j'aimerai tout de même l'optimiser parce que c'est encore au stade du "bidouillage" :S Voici mon code :
J'aimerai donc écrire cela différemment, sans les If et ElseIf, mais plutôt quelque chose qui ressemblerait à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 With Application .DisplayAlerts = False .DisplayStatusBar = True .CutCopyMode = False .ScreenUpdating = True End With Range("CO1").Select On Error Resume Next ME= Application.InputBox(prompt:="Bonjour " & Application.UserName & Chr(13) & "Merci de cliquer sur le titre de la colonne souhaitée", Title:="Mois Exemple", Type:=8) On Error GoTo 0 With Application .DisplayAlerts = True .ScreenUpdating = False .DisplayStatusBar = False End With Range("CG2:CT2", Selection.End(xlDown)).ClearContents If ME= "janv" Then Range("CH2") = "=T2/100" ElseIf ME= "fev" Then Range("CI2") = "=T2/100" ElseIf ME= "mars" Then Range("CJ2") = "=T2/100" ElseIf ME= "avril" Then Range("CK2") = "=T2/100" ElseIf ME= "mai" Then Range("CL2") = "=T2/100" ElseIf ME= "juin" Then Range("CM2") = "=T2/100" ElseIf ME= "juillet" Then Range("CN2") = "=T2/100" ElseIf ME= "août" Then Range("CO2") = "=T2/100" ElseIf ME= "septembre" Then Range("CP2") = "=T2/100" ElseIf ME= "octobre" Then Range("CQ2") = "T2/100" ElseIf ME= "novembre" Then Range("CR2") = "=T2/100" ElseIf ME= "décembre" Then Range("CS2") = "=T2/100)" End If
Appliquer la formule "=T2 / 100" pour la colonne de la variable ME".
Partager