Bonjour à tous.
J'ai un problème dans mon code pour faire un Tri. Il me met en Jaune lors du débogage la ligne suivante :
If Not (col = "E" Or col = "C" Or col = "A" Or col = "F") Then avec Incompatibilité de type
Le but est que l'utilisateur rentre une lettre de colonne et qu'ensuite le programme face le tri en fonction du choix de l'utilisateur.
Je pense que le problème vient du type de la variable qui n'est pas bon, j'ai essayé STRING et LONG, mais sans succès. Je sais pas trop quoi mettre.
Merci de votre aide, je vous laise en quote le code total
Sub Bouton_Tri()
'compte le nombre d'élément dans la base de données
Windows("Classeur1_bis.xlsm").Activate
Sheets("Base de données OS").Select
Dim unique_base As New Collection
On Error Resume Next
For Each cel In Range("A1:A" & [A65000].End(xlUp).Row)
unique_base.Add cel.Value, CStr(cel.Value)
Next cel
On Error GoTo 0
'Lance le choix
Dim col
debut:
col = Application.InputBox( _
Prompt:=("Entrez la colonne de référence :" & Chr(13) & Chr(13) & "Pour trier pas OS, tapez A" & Chr(13) & "Pour trier par Code postal, tapez C" & Chr(13) & "Pour trier par type de chaussée, tapez E" & Chr(13) & Chr(13) & "Pour une meilleure lecture de la base de données, le tri est systématiquement sur deux critères entre votre choix et la colonnes des onglets"), _
Title:="Tri de la base de données")
'Test le résultat
If Not (col = "E" Or col = "C" Or col = "A" Or col = "F") Then
MsgBox ("Merci de saisir A, C, E, ou F.")
GoTo debut
Else
End If
'Tri selon le choix demandé
Range(Cells(2, 1), Cells(unique_base.Count, 6)).Select
Selection.Sort Key1:=Cells(1, col), Order1:=xlDescending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Tri selon les onglets pour ne pas mettre les OS déjà faits
Range(Cells(2, 1), Cells(unique_base.Count, 6)).Select
Selection.Sort Key1:=Cells(1, 6), Order1:=xlAscending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub