[VBA Excel 2007] Problème de "type" ou variable

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

Bonjour

Il faut répéter

Essaie plutôten remplaçant cette ligne comme ceci :

Select Case col
Case Is = "E", "C", "A", "F"
'....ce qu'il faut faire si on choisit bien les lettres
Case Else
MsgBox ("Merci de saisir A, C, E, ou F.")
End Select

Essaie aussi d'éviter les Goto , debut. Fais plutôt deux codes et appelle les dans ta procédure, c'est nettement plus simple à gérer et à comprendre.

Amicalement

Bonjour

Autrement, une autre méthode pour trier une colonne au choix :

Amicalement

Nad

Toujours le même problème, sur :

Case Is = "E", "C", "A", "F"

J'ai l'impression que je devrais faire quelques chose sur ma variable non ? Ma déclaration de col me semble foireuse !

Bonjour

Bonjour à tous

Ta fonction InpuBox est trop importante

Supprimes la dernière ligne

Pour une meilleure lecture de ....

Bonne journée

Je l'ai supprimée, mais ça ne change rien, toujours la même erreur.

Re

Ouvre au moins le fichier que j'ai posté plus haut pour voir ce que je te propose !

Nad

Je viens de l'ouvrir, Absoluement génial.

Je vais éditer pour dire que le problème est résolu.

C'est bien mieux que ce que je voulais faire, un grand merci.

Rechercher des sujets similaires à "vba 2007 probleme type variable"