écriture d'une macro se plante dans excel 2011 ou 2016
Résolu/Fermé
Utilisateur anonyme
-
Modifié par Chris 94 le 13/06/2016 à 17:31
thev Messages postés 1961 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 16 février 2025 - 14 juin 2016 à 11:24
thev Messages postés 1961 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 16 février 2025 - 14 juin 2016 à 11:24
A voir également:
- écriture d'une macro se plante dans excel 2011 ou 2016
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si ou excel - Guide
- Déplacer une colonne excel - Guide
- Écriture facebook - Guide
2 réponses
Arkana0
Messages postés
6365
Date d'inscription
mercredi 11 février 2009
Statut
Modérateur
Dernière intervention
10 février 2023
181
Modifié par Arkana0 le 13/06/2016 à 17:40
Modifié par Arkana0 le 13/06/2016 à 17:40
Bonjour,
Pour écrire une formule dans la cellule E2 :
Entre les guillemets, tu écris exactement comme si tu étais sur Excel, à un détail près : quand tu voudras écrire
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
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.
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.
thev
Messages postés
1961
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
16 février 2025
706
Modifié par thev le 13/06/2016 à 20:18
Modifié par thev le 13/06/2016 à 20:18
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)))
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
thev
Messages postés
1961
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
16 février 2025
706
>
irettigam
Modifié par thev le 14/06/2016 à 11:28
Modifié par thev le 14/06/2016 à 11:28
Un peu plus jeune. 65 ans. Content d'avoir pu t'aider.
Je rajoute le "End if" manquant
Je rajoute le "End if" manquant
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 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
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
13 juin 2016 à 18:33
il serait plus clair pour moi si tu voulais bien écrire cette macro
Je sais c'est la facilité mais j'y est passé tellement de temps et un peu d'indulgence pour un vieux monsieur
Merci d'avoir répondu si vite et peut être pour la suite ?