XL 2019 VBA SI (If) multiple plage

jeff.k

XLDnaute Nouveau
Bonjour a tous,

Tout d'abord merci au forum XLD j'ai trouvé beaucoup de réponses ici. J’espère que vous pourrez m'aider

Voici mon problème, je veux tester si une valeur existe déjà dans un plage et le plage change suivant l'utilisateur.
Tant que je n'utilise pas les If la procédure fonctionne, donc le problème vient de la, et à l'utilisation des If j'ai le message "la méthode 'Range' de l'objet'_Global' a échoué"
j'ai aussi essayé avec Select Case même résultat. Je joint le fichier ce sera plus simple

Merci de votre aide

Jeff
 

Pièces jointes

  • FacturationTest2.xlsm
    21.4 KB · Affichages: 12
Solution
Bonjour à tout le monde
Je ne connais pas cette notation avec les parenthèses, mais comme ceci ça a l'air de fonctionner
c'est à dire qu'il n'y a plus le message d'erreur. Pour le reste ????
If Range(f) = ("Jeff") Then h = a
If Range(f) = ("Dorothée") Then h = b
If Range(f) = ("Marion") Then h = c
If Range(f) = ("Nathalie") Then h = d

jeff.k

XLDnaute Nouveau
Bonjour dg62,
meric de prendre du temps
la on tombe tout de suite dans mes incompétences, les déclarations me sont étrangères. j'ai repris cette procédure ou le même problème m’était arrivé et c’était réglée par cette déclaration.
f est justement ce qui change?
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, jeff.k

Je ferai un truc dans ce genre si j'étais moi.
En espérant que cela t'inspires... ou pas.
(Cela m'aura au moins "déconfiné" pendant quelques minutes ;))
VB:
Sub test()
Dim P As Range, xV$, col&, NewNum
Set P = [A6:D6]
Qui = InputBox("Choisir personne?", "Test", "Marion")
xV = "" & Chr(42) & CStr(Qui) & Chr(42) & ""
col = Application.Match(xV, P, 0)
NewNum = Cells(Rows.Count, col).End(3) + 1
If MsgBox("Nouveau N° de devis = " & NewNum, vbYesNo) = 6 Then
Cells(Rows.Count, col).End(3)(2) = NewNum
End If
End Sub

EDITION: dg62 (re) ;)
 

Pounet95

XLDnaute Occasionnel
Bonjour à tout le monde
Je ne connais pas cette notation avec les parenthèses, mais comme ceci ça a l'air de fonctionner
c'est à dire qu'il n'y a plus le message d'erreur. Pour le reste ????
If Range(f) = ("Jeff") Then h = a
If Range(f) = ("Dorothée") Then h = b
If Range(f) = ("Marion") Then h = c
If Range(f) = ("Nathalie") Then h = d
 

Pounet95

XLDnaute Occasionnel
Bonjour Staple 1600
C'est vrai que ça ne motive pas quand on n'a pas de retour (feedback ?) même négatif.
J'ai le sentiment que certains ne s'inscrivent que pour avoir la solution à l'instant t.
Mais bon en cette période difficile, ça occupe et c'est, pour moi, plus intéressant que la TV.
Au plaisir
 

jeff.k

XLDnaute Nouveau
Désolé Staple1600,
Vous etes tous rapide a répondre ,il y a eu 3 de réponses en même temps, j'ai testé la tienne, pour être clair je n'ai pas les compétences pour la comprendre et pour l'adapter. merci de ton aide en tout cas

Jeff
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour Pounet95

•>jeff.k
Merci pour le feedback ;)
Déjà, puisque tu as testé : est-ce mon code fait ce qu'il faut ?
De ce que j'ai compris, il faut créer un nouveau N° de devis selon le nom de la personne?
C'est ce que fait ma macro, non ?
 

Discussions similaires

  • Résolu(e)
Microsoft 365 FORMULE Excel VBA
Réponses
17
Affichages
858

Statistiques des forums

Discussions
312 496
Messages
2 088 980
Membres
103 996
dernier inscrit
KB4175