Utilisation valeur inputbox dans IF

Fermé
sam - 2 nov. 2018 à 14:15
 sam - 8 nov. 2018 à 09:31
Bonjour,

N'étant pas du tout une expert en VBA (et ayant fouillée déjà pas mal de forum en tout genre sinon je ne vous dérangerais pas ^^'), j'aurais besoin de vos lumières s'il-vous-plait...

Je vous explique mon objectif :

Je dispose d'une base avec en colonne A des commentaires et je voudrais coder en colonne B le sujet que traite ces commentaires (par exemple A2= "la météo est vraiment agréable aujourd'hui" > B2 = 1, 1 faisant référence au sujet 1 : météo).

J'arrive à faire cette opération avec un contenu directement écrit dans la macro (si j'écris "météo" il arrive à me coder 1 lorsque ce mot apparait dans le commentaire) mais l'idée étant de pouvoir simplifier le codage, y compris à des collègues qui n'y connaissent rien en VBA, et pour divers sujets, j'ai entrepris d'avoir recours à une Imputbox.
Mon but : que pour n'importe quel fichier (construit de la même manière), chacun puisse noter dans l'Inputbox le sujet qui l'intéresse et que le codage se fasse. L'idée étant ensuite de pouvoir proposer plusieurs codes et non un seul (un même fichier peut traiter de météo -codé 1, de restaurant -codé 2..., selon ce que l'utilisateur décide).
J'espère que c'est compréhensible...?

Voilà le code que j'ai commencé.
Je me doute qu'il y a surement des choses qui peuvent être mieux faites (je prends bien sûr vos remarques) mais soyez indulgent pour l'instant le but était juste que ça fonctionne...

Merci de votre aide !


'ajouter formulaire pour que l'utilisateur détermine quels mots chercher
Dim Valeur1 As String
Valeur1 = InputBox("Entrez le premier mot à coder : ", "Coder le premier mot")

' Ajouter deux lignes avec le code et sa valeur
Rows("2:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
' valeur
Range("B2").Value = Valeur1
' code
Range("B3").Value = 1

' Analyse qualitative : si la cellule contient ... coder .
Dim i As Long
Dim maLigne As Long
maLigne = Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False

For i = 4 To maLigne
If Range("A" & i).Value Like Valeur1 Then ' ICI
Range("B" & i).Select
ActiveCell.FormulaR1C1 = "1" 'coder 1 si la valeur de l'Inputbox se trouve dans le commentaire
Else: Range("B" & i) = "0" ' 0 sinon
End If
Next i

Jusque là tout fonctionne, mon problème se trouve lorsque je passe au codage des commentaires (ICI).
Aucun message d'erreur, j'ai juste l'impression qu'il ne reconnait pas Valeur1 comme le résultat de mon InputBox mais comme la valeur qu'il doit chercher (évidemment aucun des commentaires ne contient ça donc je n'obtiens que des 0). Si vous pouvez m'éclairer parce que je ne vois pas ce qu'il faut changer pour que ça fonctionne...

3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 3 nov. 2018 à 07:31
Bonjour,

a voir, le lien est en anglais mais le contenu est en français :
https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/operators/like-operator
0