écriture d'une macro se plante dans excel 2011 ou 2016
Résolu
irettigam
-
thev Messages postés 2010 Date d'inscription Statut Membre Dernière intervention -
thev Messages postés 2010 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
cette macro fonctionne correctement
Comment l'écrire sous cette forme qui plante ?
MERCI beaucoup pour votre aide
cette macro fonctionne correctement
Sub Macro2()
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-2]="""","""",IF(HLOOKUP(RC[-2],R[-1]C[6]:R[6]C[13],2,FALSE)=0,"""",HLOOKUP(RC[-2],R[-1]C[6]:R[6]C[13],2,FALSE)))"
End Sub
Comment l'écrire sous cette forme qui plante ?
Sub Macro()
Range("E2").Select
If range(C2 = "";"" ,(HLookup("C2", "K1:R8", 2, False = "0", "", HLookup ("C2", "K1:R8", 2, False))
End Sub
MERCI beaucoup pour votre aide
2 réponses
-
Bonjour,
Pour écrire une formule dans la cellule E2 :Range("E2").FormulaLocal = "=Ta formule"
Entre les guillemets, tu écris exactement comme si tu étais sur Excel, à un détail près : quand tu voudras écrire""
, tu devras mettre à la place" & Chr(34) & Chr(34) & "
En effet, en VBA, les guillemets servent à indiquer un début et une fin de chaîne de caractères.
Pour écrire des guillemets il faut utiliser Chr(34), afin que le code comprenne de quoi il s'agit.
Pour les introduire, tu vas devoir fermer la chaîne de caractères que tu as écrite jusqu'au moment où tu souhaites mettre ton guillemet...en mettant un guillemet donc.
Tu dois ensuite ajouter plusieurs chaînes de caractères entre-elles, et c'est l'opérateur&
qui le permet
Rq : l'étape Range("E2").Select est inutile, sauf si tu as vraiment besoin que la cellule soit sélectionnée. Autrement, ça fait perdre beaucoup de temps d'exécution au code. -
Bonjour,
J'ai de l'indulgence parce que je ne suis pas tout jeune non plus.
formule à adapter en VBA pour la cellule E2 :
=IF(C2="","",IF(HLOOKUP(C2,K1:R8,2,FALSE)=0,"",HLOOKUP(C2,K1:R8,2,FALSE)))
Sub Macro()
If [C2] = "" Then
[E2] = ""
Else
If Application.HLookup([C2], [K1:R8], 2, False) = 0 Then
[E2] = ""
Else
[E2] = Application.HLookup([C2], [K1:R8], 2, False)
End If
End Sub
-
-
-
ENCORE moi je me suis trop précipité en effet Si C2 trouve ....OK en E2
Si C2 ne trouve..... pas OK en E2
mais si C2 est égal à blanc il apparait # N/A en E2 pourquoi ?
Un message apparait : incompatibilité de type... si je clic sur déboguer la ligne :
if application.hlookup( apparait en sur brillance
Merci -
-