Code VBA qui plante avec les mots US ou USA

Bonjour à tous,

voila il m'arrive un truc de fou ...

j'ai fait un code qui fonctionne très bien avec le pays "FR" ou/et "CA" ... en revanche, le meme code pour les "US" ou "USA", "United States" et "United_States" plante ... je ne comprends pas pourquoi...

Voici mon code.

Avez-vous une idée et une solution à part de renommer les US en un autre nom

    'compte le nombre de lignes et colonnes

        Range("A1").Select
        nblignes = Range("A1", selection.End(xlDown)).Cells.Count
        nbColonnes = Range("A1", selection.End(xlToRight)).Cells.Count

    'recherche si le pays existe

        If Application.CountIf(Range("C:C"), "United States") > 1 Then

    'selectionne les lignes et les effface

            ActiveSheet.ListObjects("Table13").Range.AutoFilter Field:=3, Criteria1:= _
                "<>United States"
'            ActiveSheet.ListObjects("Table13").Range.AutoFilter Field:=3, Criteria1:= _
'                "=Canada", Operator:=xlOr, Criteria2:="=France"
            Rows("2:" & nblignes & "").Select
            Range(selection, selection.End(xlDown)).Select
            selection.Delete Shift:=xlUp
            ActiveSheet.ListObjects("Table13").Range.AutoFilter Field:=3
            Range("A2").Select

        Else

    'supprime l'onglet si le pays n'est présent dans l'onglet
            Sheets("US").Select
            ActiveWindow.SelectedSheets.Delete

        End If

bonjour lolo, c'est p't'être un code VBA anti-impérialisme américain ?

bon, patiente un moment : j'vais étudier ton code VBA pour voir si y'a une solution.

dhany

j'y ai pensé aussi mais bon

super je te remercie

Bonjour,

A priori, cela peut ne pas fonctionner (procédure hasardeuse) !...

Quelle ligne est surlignée quand l'erreur apparaît ?

Sinon, joins un fichier.

Cdlt.

@lolo

pour cette ligne :

If Application.CountIf(Range("C:C"), "United States") > 1 Then

j'crois bien qu'c'est ok (vérifie quand même si ça rentre bien après le If, donc dans la partie If .. Else).


c'est bien possible que ça coince ici, pour Criteria1 :

ActiveSheet.ListObjects("Table13").Range.AutoFilter Field:=3, Criteria1:="<>United States"

solution simple et rapide : renommer en United_States (avec un souligné)

sinon, peut-être en ajoutant des guillemets ? comme ceci :

ActiveSheet.ListObjects("Table13").Range.AutoFilter Field:=3, Criteria1:="<>""United States"""


si ça a marché : merci de passer le sujet en résolu ; sinon, tu devrais joindre ton fichier.

dhany

Dhany et Jean-Eric,

alors voici un fichier, comme vous pourrez le voir, y a deux fois le meme code pour la FR et le CA, et une 3e fois pour les US et là, ça ne fonctionne pas...

en fait, j'ai pas de message d'erreur, le code pense qu'il ne trouve pas de lignes dans la colonne C et dans l'onglet US contenant les mots United States, alors que j'ai bien une ligne. Et du coup, il continue le process en me supprimant la feuille (ce qui est normal si il ne trouve pas le pays United States)

Re,

Voir fichier modifié !...

Sinon, tout est revoir, mais pas le temps ce jour.

Dans l'idée, on filtre les données suivant les critères et on copie les résultats dans une nouvelle feuille.

Cdlt.

Super, merci Jean-Eric pour ton aide !

Bonjour,

Merci pour ce retour et d'avoir clos le sujet.

Bonne journée.

Rechercher des sujets similaires à "code vba qui plante mots usa"