Utiliser la Range obtenue par Application.Inputbox
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 :
Code:
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 If |
J'obtiens une erreur sur :
Code:
If MoisETP.Address = ("CG1") Then
Je 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")
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.
:oops: Avez vous une solution pour moi ?
Edit : J'ai continué mes recherches et j'ai trouvé cela :
Code:
Set CME= ME.Item(1).Column
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 ^^
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 :
Code:
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 |
J'aimerai donc écrire cela différemment, sans les If et ElseIf, mais plutôt quelque chose qui ressemblerait à :
Citation:
Appliquer la formule "=T2 / 100" pour la colonne de la variable ME".