Comparer en VBA deux strings dans des feuilles différentes

Bonjour,

Voilà, je cherche à faire un code VBA pour comparer le contenu de deux cellules situées sur des feuilles différentes (avec incrémentation de leur nombre).

Voici le code que j'ai fait pour le moment :

Sub Export_CA()

Dim Ws As Worksheet

For Each Ws In ThisWorkbook.Worksheets

If Ws.Name = "Synthese" Or Ws.Name = "CA" Or Ws.Name = "Répertoire" Or Ws.Name = "Listes" Or Ws.Name = "Modèle" Then

Else

For i = 3 To 10

For j = 19 To 30

If Sheets(Ws).Cells(j, 1) = Sheets(2).Cells(i, 1).Value Then

Sheets(2).Cells(i, 2).Value = Sheets(2).Cells(i, 2).Value + Sheets(Ws).Cells(j, 4).Value

End If

Next j

Next i

End If

Next Ws

End Sub

Et voici les explications :

- Le premier If permet d'exclure des feuilles que je ne veux pas comparer

Ensuite :

  • Si la String contenue dans la cellule A19 de la feuille #Ws1 correspond à celle de la cellule A3 de la feuille 2, alors j'ajoute à la cellule B3 de la feuille 2 la valeur de la cellule D19 de la feuille Ws1
  • une fois que j'ai testé la première ligne de la feuille #Ws1 (donc A19), je teste la seconde (donc A20) et ainsi de suite jusqu'à avoir testé toutes les lignes (donc A30 pour la dernière) => incrémentation de j
  • une fois que j'ai testé si toutes les lignes de la feuille #Ws1 correspondent à la 1re ligne de la feuille 2, je réeffectue le test pour la 2ème ligne de la feuille 2 => incrémentation de i
  • une fois que j'ai testé la feuille #Ws1, je refais tous ces tests pour la feuille #Ws2 => incrémentation de Ws

Et ce jusqu'à arriver à ma dernière feuille.

Je ne sais pas jusqu'à combien peut monter Ws, car chaque onglet Ws représente une facture (donc augmente dès la création d'une nouvelle). C'est aussi pour cela que je ne peux pas joindre de fichier, ce sont des données confidentielles (et assez longues à rendre anonymes). Le but de cette macro est de pouvoir déterminer le CA de chaque produit (dont le nom figure donc en A19 et après de chaque feuille Ws, et sa valeur en D19 et suite).

Mais j'ai une erreur d'incompatibilité de type lorsque je fais ma comparaison de valeurs et je ne comprends pas pourquoi...

Merci beaucoup pour votre aide

(Je ne pourrai pas vous répondre/remercier avant lundi, mais je le ferai sans faute dès que je le pourrais)

Bonjour

Sans fichier pour se fixer les idées, ce n'est pas commode...

Essaie d'envoyer au moins un fichier vide de données car j'ai du mal à suivre tes explications.

Bye !

Bonsoir,

A priori, la ligne éligible à ce type d'erreur est celle où se déroule l'addition... ce qui ne devrait tout de même pas te dispenser de le signaler . A moins que le but détourné soit de tester les candidts potentiels à te l'apporter !

Lorsque l'erreur d'exécution se produit, tu cliques sur Débogage. Pendant que tu es en mode Arrêt, le survol des variables avec la souris affiche dans une info-bulle leur valeur au moment de l'arrêt. Cela devrait te permettre de localiser les cellules concernées par l'arrêt, d'en faire le tour pour détecter celle dont la valeur (en principe non numérique) a provoqué l'erreur.

Cordialement.

Salut Razorbill,

sans vouloir être rasoir (pffffffff ), dans la foulée des conseils judicieux de MFerrand, j'ai presque peur de te demander si tu as vérifié la similitude de format de tes colonnes!!!!!

Ayant déjà eu ce genre de bug... ben oui, ça peut arriver à tout le monde!

A+

Merci de votre aide, le test des variables m'a été utile, j'ai pu découvrir comme ça qu'il avait du mal à interpréter ma variable Ws.

J'ai pu résoudre mon problème en remplaçant le Sheets(Ws).Cell() par le Ws.Range correspondant, et cela fonctionne nickel

Encore merci

Rechercher des sujets similaires à "comparer vba deux strings feuilles differentes"