Erreur Incompatibilité de type

Bonjour,

j'ai un problème sur une macro me permettant de calculer la longueur d'une pièce pour créer une liste de débit.
Je boucle sur toutes les cellules non vides d'une colonne pour calculer la valeur d'autres cellules de la même ligne mais je ne comprends pas pourquoi j'ai toujours une incompatibilité de type à partir de l'article N°18, j'ai déjà modifié les données mais toujours la même erreur...
J'ai joint le fichier qui pose problème, est-ce que quelqu'un peu m'aider?...

Bonjour,

Votre code ne converti pas les données de la colonne D (feuille débit) en nombres. Vous avez des nombres à virgules séparés par… un point ".". Excel reconnait du texte pas des nombres. Donc quand vous voulez les utiliser pour le calcul, ce qui se produit à la ligne 18, vous levez une erreur car vous voulez calculer avec du texte.

Pour corriger vous pouvez boucler sur votre colonne et remplacer les points par des virgules.

Sinon pour info j'imagine que vous importez vos données depuis un autre fichier. En utilisant PowerQuery vous pourriez effectuer tout ce travail de nettoyage VBA via l'importation directement.

Bonjour,

merci pour votre réponse ! J'ai gagné une après-midi à chercher dans le vide grâce à vous

Pour l'aspect powerquery et nettoyage des donnés, je ne sais pas si c'est possible mais peut-être pourrez vous m'aider...
Actuellement j'utilise une fonction QueryTable dans une macro VBA qui est lancé automatiquement lorsque le fichier est généré par un autre programme (DriveWorks). Donc je n'intervient pas du tout sur le fichier et j'avoue que mes connaissances sont assez légère en ce qui concerne powerquery...
Peut-être pouvez vous m'aiguiller...

Pour le moment j'utilise le code suivant :

''Import Débit
    Dim FichierSourceDeb As String
    Dim ws As Worksheet

    ' Chemin fichier CSV
    FichierSourceDeb = Sheets("Accueil").Range("C6").Value 

    ' Définir la feuille de destination
    Set ws = ThisWorkbook.Worksheets("Entrée Débit")
    ws.Cells.Clear ' Effacer le contenu 

    ' Ajouter une QueryTable pour importer le fichier CSV
    With ws.QueryTables.Add(Connection:="TEXT;" & FichierSourceDeb, Destination:=ws.Range("A1"))
        .TextFileParseType = xlDelimited         
        .TextFileCommaDelimiter = True           ' Spécifier que le séparateur est la virgule
        .TextFileConsecutiveDelimiter = False    ' Pas de délimiteurs consécutifs
        .TextFileTrailingMinusNumbers = True     ' Pour gérer les nombres négatifs
        .Refresh BackgroundQuery:=False          ' Rafraîchir et attendre la fin du chargement
        .Delete                                  ' Supprimer la QueryTable une fois l'import terminé
    End With

    ' Ajuster automatiquement la largeur des colonnes
    ws.Columns.AutoFit

En tout cas merci beaucoup pour le point mdr

Content d'aider.

Pour info je vous conseille d'activer dans le VBE : Vue > Variables locales. Quand vous exécutez le code en pas à pas (via F8) ou lorsqu'il plante, cette fenêtre vous donnera l'état de toutes vos variables. En faisant ainsi vous trouverez la raison de beaucoup de "problèmes étranges".

image image

Pour l'import de votre fichier, le plus pratique serait que vous partagiez ici un fichier source d'exemple (votre CSV) et comme ça on pourra éditer une requête correcte.

Merci pour l'astuce

Rechercher des sujets similaires à "erreur incompatibilite type"