MsgBox : afficher le classement de la commune en saisissant le code INSEE
Bonsoir,
J'ai une liste des communes avec leur capacité d'accueil touristique (nbr de lits) et je souhaite attribuer une classe en fonction du nombre de lits à l'aide de MsgBox.
Par exemple comme ceci :
If valeur = 0 Then
MsgBox "Commune non touristique" & "( " & valeur & "lits )", vbExclamation, "Info tourisme"
ElseIf valeur > 0 And valeur < 100 Then
MsgBox "Commune de très faible intensité touristique"
ElseIf valeur > 100 And valeur < 1000 Then
MsgBox "Commune de moindre intensité touristique"
ElseIf valeur > 1000 And valeur < 5000 Then
MsgBox "Commune d'intensité touristique moyenne"
ElseIf valeur > 5000 Then
MsgBox "Commune de forte intensité touristique"
La Macro sert saisir le code INSEE dans l'InputBox (colonne E) pour ensuite appliquer la condition (ci-dessus) pour le nombre de lits (colonne H) afin de communiquer la classe de la commune.
Pouvez-vous m'aider à résoudre cela ?
Merci d'avance :)
Bonjour,
Peux-tu indiquer la version Excel utilisée dans ton profil ?
Cdlt.
Bonjour à tous,
Un essai ...
Sub tourisme1()
Dim Comtouristique As String
Dim Ligne As Integer
Dim Cell As Range
Dim Maplage As Range
Comtouristique = InputBox("Entrez le code INSEE de la commune", "Info tourisme")
If Comtouristique = "" Then Exit Sub
If Len(Comtouristique) < 5 Or Len(Comtouristique) > 5 Then
MsgBox "Vérifiez votre code INSEE", vbExclamation
Exit Sub
End If
Set Maplage = Worksheets("Toursime").Range("E2:E35229")
For Each Cell In Maplage
Comtouristique = UCase(Comtouristique)
If Comtouristique = Cell.Value Then
valeur = Cell.Offset(, 3).Value
If valeur = 0 Then
MsgBox "Commune non touristique" & "( " & valeur & "lits )", vbExclamation, "Info tourisme"
ElseIf valeur > 0 And valeur < 100 Then
MsgBox "Commune de très faible intensité touristique" & " ( " & valeur & " lits )", vbExclamation, "Info tourisme"
ElseIf valeur > 100 And valeur < 1000 Then
MsgBox "Commune de moindre intensité touristique" & " ( " & valeur & " lits )", vbInformation, "Info tourisme"
ElseIf valeur > 1000 And valeur < 5000 Then
MsgBox "Commune d'intensité touristique moyenne" & " ( " & valeur & " lits )", vbInformation, "Info tourisme"
ElseIf valeur > 5000 Then
MsgBox "Commune de forte intensité touristique" & " ( " & valeur & " lits )", vbInformation, "Info tourisme"
Else
MsgBox "Vérifiez votre code INSEE", vbExclamation
End If
Exit For
End If
Next
End Sub
ric
Bonjour,
Ci-joint votre code modifié
Sub tourisme1()
Dim comtouristique As String
Dim Ligne As Integer
comtouristique = InputBox("Entrez le code INSEE de la commune", "Info tourisme")
If comtouristique = "" Then Exit Sub
If Len(comtouristique) < 5 Or Len(comtouristique) > 5 Then
MsgBox "Vérifiez votre code INSEE", vbExclamation
Exit Sub
End If
Dim maplage As Range
Set maplage = Range("E1:E35229")
valeur = ActiveSheet.Cells(Application.WorksheetFunction.Match(comtouristique, maplage, 0), 8).Value
If valeur = 0 Then
MsgBox "Commune non touristique" & "( " & valeur & "lits )", vbExclamation, "Info tourisme"
ElseIf valeur > 0 And valeur < 100 Then
MsgBox "Commune de très faible intensité touristique" & " ( " & valeur & " lits )", vbExclamation, "Info tourisme"
ElseIf valeur > 100 And valeur < 1000 Then
MsgBox "Commune de moindre intensité touristique" & " ( " & valeur & " lits )", vbInformation, "Info tourisme"
ElseIf valeur > 1000 And valeur < 5000 Then
MsgBox "Commune d'intensité touristique moyenne" & " ( " & valeur & " lits )", vbInformation, "Info tourisme"
ElseIf valeur > 5000 Then
MsgBox "Commune de forte intensité touristique" & " ( " & valeur & " lits )", vbInformation, "Info tourisme"
Else: MsgBox "Vérifiez votre code INSEE", vbExclamation
End If
End Sub
Votre plage était mal définie à la base (colonne H à E et non l'inverse) ce qui provoquait une erreur sur la définition de valeur.
Cdlt,
Merci infiniment ! ça fonctionne très bien !