Comparer en VBA deux strings dans des feuilles différentes Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
R
Razorbill
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 8 décembre 2014
Version d'Excel : 2010 FR

Message par Razorbill » 5 février 2016, 16:59

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)
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'214
Appréciations reçues : 281
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 5 février 2016, 19:03

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 !
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 444
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 5 février 2016, 19:14

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 ! :D

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.
Avatar du membre
curulis57
Membre impliqué
Membre impliqué
Messages : 2'945
Appréciations reçues : 109
Inscrit le : 4 janvier 2016
Version d'Excel : 2013 FR

Message par curulis57 » 5 février 2016, 19:39

Salut Razorbill,

sans vouloir être rasoir (pffffffff :oops: ), 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! :wink:

A+
R
Razorbill
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 8 décembre 2014
Version d'Excel : 2010 FR

Message par Razorbill » 8 février 2016, 13:09

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message