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
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
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