Boucle While et Condition If

Bonsoir à tous,

Lorsque je lance ma macro, un message d'erreur est généré au niveau de la ligne de ma condition "If".

Je ne comprends pas ce qui bloque sur cette ligne.

Pourriez-vous m'aider à mieux comprendre le problème, svp?

Merci par avance pour vos éclaircissements.

Sur ceux, bonne soirée!

7miseenforme.xlsm (618.71 Ko)

Bonsoir Black_Hole

 If Not IsEmpty(WS_1.Cells(iRow + 2, 1).Value) Then

Pour commencer, petit lien utile : IsEmpty Function

Empty est utilisé pour des variables, or là, vous l'utilisez pour une valeur de cellule, d'où le bug

Il suffit de faire

If WS_1.Cells(iRow + 2, 1).Value <>"" Then

@+

Bonsoir @ BrunoM45

Merci beaucoup pour le partage du lien. En effet, le problème a été résolu en utilisant <> "" au lieu de la fonction IsEmpty.

J'ai une dernière question qui porte sur une autre de mes conditions IF dans cette macro.

Dans l'extrait ci-dessous, je demande à supprimer les espaces. Ma condition tourne sans erreur sauf qu'aucun changement n'est appliqué.

Pourriez-vous m'aider à comprendre ce qui ne va pas, s'il vous plaît?

For jRow = 2 To 13 'jLastRow

    If Left(WS_2.Cells(jRow, 5).Value, 1) = 0 Then
        WS_2.Cells(jRow, 5).Value = "0" & Trim(Mid(WS_2.Cells(jRow, 5).Value, 2, Len(WS_2.Cells(jRow, 5).Value))) 'Replace " ", ""

        Else
            WS_2.Cells(jRow, 5).Value = WS_2.Cells(jRow, 5).Value 'Replace " ", ""

    End If

Next jRow

Merci par avance pour votre aide.

4miseenforme-2.xlsm (621.33 Ko)

Bonsoir,

[quote=Black_Hole post_id=881041 time=1592503226 user_id=42239]

Dans l'extrait ci-dessous, je demande à supprimer les espaces. Ma condition tourne sans erreur sauf qu'aucun changement n'est appliqué.[/Quote]

Heuuu non le code ajoute un 0 devant le texte récupérer de la 5ème colonne en commençant par la 2ème position

Ca ne supprime absolument pas les espaces

Sinon pourquoi avoir mis en annotation Replace()

JE ne sais pas d'où vient se code, mais ce n'est donc pas toi qui l'a développé

Re @BrunoM45

Sinon pourquoi avoir mis en annotation Replace()

Au départ, j'ai essayé de supprimer les espaces en utilisant la fonction replace. Cela a fonctionné en partie. J'ai constaté que les numéros de la colonne E, qui commençaient par 0, perdaient le 0 en supprimant les espaces.

Sur Excel, par ex si on saisit dans une cellule "01" alors la valeur affichée sera "1". Le zéro ne s'affiche pas.

Sauf que comme les valeurs de la colonne E correspondent à des codes, le zéro en première position à son importance.

Ce qui m'a amené à changer mon raisonnement et donc j'ai utilisé la fonction TRIM (qui me permet plus facilement de manipuler les valeurs par cellule).

J'applique la règle suivant:

Si mon code commencent par 0 alors je préfixe par 0 et par conséquent je supprime les espaces en partant de la deuxième position du code.

Sinon, je supprime les espaces.

JE ne sais pas d'où vient se code, mais ce n'est donc pas toi qui l'a développé  8-)

Ce code vient malheureusement de moi... Je ne maîtrise pas VBA au bout des doigts ^^

Du coup, lorsque je code je fais beaucoup de recherches sur les fonctions, les méthodes, etc. les plus adaptées à mon besoin.

C'est pourquoi certaines fonctions ou autres sont mises en commentaire (mes commentaires dans mon code sont des brouillons temporaires ^^). Désolé si cela vous a perturbé.

En espérant avoir été plus claire sur le script publié dans mon topic précédent.

Merci par avance pour votre aide.

Bonne soirée

Rechercher des sujets similaires à "boucle while condition"