Vlookup vba ne fonctionne pas
Résolu/Fermé
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
-
21 mars 2013 à 02:57
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 26 mars 2013 à 04:43
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 26 mars 2013 à 04:43
A voir également:
- Vlookup vba exemple
- Url exemple - Guide
- Tableau word exemple - Guide
- Exemple de code ascii - Guide
- Tableau croisé dynamique excel exemple - Guide
- Sommaire word exemple - Guide
7 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
21 mars 2013 à 08:02
21 mars 2013 à 08:02
bonjour,
Pour effacer les espaces devant et derrière des textes la fonction VBA est TRIM(" le texte ")
Pourquoi as tu pratiquement les m^me macros dans le module janv et thisworkbook ?
Ton classeur réel couvre t il toute l'année ?
Pour effacer les espaces devant et derrière des textes la fonction VBA est TRIM(" le texte ")
Pourquoi as tu pratiquement les m^me macros dans le module janv et thisworkbook ?
Ton classeur réel couvre t il toute l'année ?
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
21 mars 2013 à 15:31
21 mars 2013 à 15:31
Bonjour Michel
oui mon classeur couvre toute l'année..
alors j'ai un fichier : ici calsseur1.. dans lequel normalement j'aurais plusieurs feuilles
le mois| un graphique| un feuille avec calcul| balance de vérification(bv)|résultas (res)| bilan
et ainsi de suite pour chacun des mois de l'année..
ici pour les besoin de la cause j'ai simplifié au minimum mes feuilles et mes données (j'ai retiré la feuille graphique et mon autre feuille contenant des calculs) aussi pour une question de confidentialité, j'ai changé les chiffres de mes résultats
je pensais faire un code pour chaque mois
merci de prendre le temps de m'aider
Mélanie
oui mon classeur couvre toute l'année..
alors j'ai un fichier : ici calsseur1.. dans lequel normalement j'aurais plusieurs feuilles
le mois| un graphique| un feuille avec calcul| balance de vérification(bv)|résultas (res)| bilan
et ainsi de suite pour chacun des mois de l'année..
ici pour les besoin de la cause j'ai simplifié au minimum mes feuilles et mes données (j'ai retiré la feuille graphique et mon autre feuille contenant des calculs) aussi pour une question de confidentialité, j'ai changé les chiffres de mes résultats
je pensais faire un code pour chaque mois
merci de prendre le temps de m'aider
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
21 mars 2013 à 16:28
21 mars 2013 à 16:28
Je m'y mets; réponse certainement demain
je prends comme hypothèse que les résultats (re....) ont toujours la m^me structure: m^mes lignes et colonnes....
je prends comme hypothèse que les résultats (re....) ont toujours la m^me structure: m^mes lignes et colonnes....
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
21 mars 2013 à 16:31
21 mars 2013 à 16:31
bonjour Michel
le nombre de ligne peux changer, si par exemple il n'y avait pas de vente dans la feuille res01, la ligne vente n'apparaitrait pas.
Par contre si tu parle de ma feuille ou on va mettre le résultat soit janvier dans ce cas-ci, celle là reste toujours la même
encore merci
Mélanie
le nombre de ligne peux changer, si par exemple il n'y avait pas de vente dans la feuille res01, la ligne vente n'apparaitrait pas.
Par contre si tu parle de ma feuille ou on va mettre le résultat soit janvier dans ce cas-ci, celle là reste toujours la même
encore merci
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
21 mars 2013 à 17:20
21 mars 2013 à 17:20
Ce qui me gène énormément est que les termes ne correspondent pas entre le mois et le résultat
Il serait bon que dans la feuille résultats tu me donnes l'aspect envoyé par ton logiciel de compta
Je t'avoue que je me vois mal parti...
Il serait bon que dans la feuille résultats tu me donnes l'aspect envoyé par ton logiciel de compta
Je t'avoue que je me vois mal parti...
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
21 mars 2013 à 17:30
21 mars 2013 à 17:30
Bonjour Michel
Effectivement ce que me donne mon logiciel de comptabilité : la feuille res01 et ce qu'il y a dans ma feuille janv ne sont pas les mêmes termes.. c'est pour ça que je dois faire ce fichier.. car nos partenaires d'affaires veulent avoir le même genre de fichier standardiser à tous leur partenaire : feuil janv mais moi mon logiciel de comptabilité me donne la présentation et les termes de la feuil rs02.. à date je vais moi-même chaque moi regrouper les chiffres et les mettre manuellement mais cela me prend un temps fou chaque mois..
Dans mon code fait à date c'est que je spécifie moi-même les données que je veux regrouper ensemble..
Comme par exemple : dans entretien et réparation :
Je sais que dans mon logiciel de comptabilité j'ai la possibilité de tous les comptes inscris dans mon code, mais cela ne veut pas nécessairement dire que ces comptes de dépenses apparaitrons dans chacun des mois..
Je sais pas si ce que je dis est clair pour toi?
Je suis consciente que de cette façon à chaque nouveau compte créer dans mon logiciel de comptabilité je devrai changer mon code dans mon fichier mais ça ne me dérange pas.. ça arrive que très rarement et juste que ce soit automatiser ça va me sauver de longues heures à chaque mois
Mélanie
Effectivement ce que me donne mon logiciel de comptabilité : la feuille res01 et ce qu'il y a dans ma feuille janv ne sont pas les mêmes termes.. c'est pour ça que je dois faire ce fichier.. car nos partenaires d'affaires veulent avoir le même genre de fichier standardiser à tous leur partenaire : feuil janv mais moi mon logiciel de comptabilité me donne la présentation et les termes de la feuil rs02.. à date je vais moi-même chaque moi regrouper les chiffres et les mettre manuellement mais cela me prend un temps fou chaque mois..
Dans mon code fait à date c'est que je spécifie moi-même les données que je veux regrouper ensemble..
Comme par exemple : dans entretien et réparation :
Je sais que dans mon logiciel de comptabilité j'ai la possibilité de tous les comptes inscris dans mon code, mais cela ne veut pas nécessairement dire que ces comptes de dépenses apparaitrons dans chacun des mois..
Sub ENTRETIENETRÉPARATIONS() With Sheets("Janv") .Range("B22").Value = WorksheetFunction.VLookup("ENTRETIENDIVERS", Sheets("Res01").Range("A2:D200"), 2, False) + WorksheetFunction.VLookup("ENTRETIENTERRAIN", Sheets("Res01").Range("A2:D200"), 2, False) + _ WorksheetFunction.VLookup("ENTRETIENÉQUIPEMENTSÉCHOIRS", Sheets("Res01").Range("A2:D200"), 2, False) + WorksheetFunction.VLookup("ENTRETIENLIGNECHALEUR", Sheets("Res01").Range("A2:D200"), 2, False) + _ WorksheetFunction.VLookup("ENTRETIENMATÉRIELROULANT", Sheets("Res01").Range("A2:D200"), 2, False) + WorksheetFunction.VLookup("ENTRETIENREMORQUE", Sheets("Res01").Range("A2:D200"), 2, False) + _ WorksheetFunction.VLookup("ENTRETIENENTREPOT", Sheets("Res01").Range("A2:D200"), 2, False) + WorksheetFunction.VLookup("ENTRETIENBUREAU", Sheets("Res01").Range("A2:D200"), 2, False) + _ WorksheetFunction.VLookup("ENTRETIENBALAI", Sheets("Res01").Range("A2:D200"), 2, False) + WorksheetFunction.VLookup("PLANEUR", Sheets("Res01").Range("A2:D200"), 2, False) End With End Sub<code></code>
Je sais pas si ce que je dis est clair pour toi?
Je suis consciente que de cette façon à chaque nouveau compte créer dans mon logiciel de comptabilité je devrai changer mon code dans mon fichier mais ça ne me dérange pas.. ça arrive que très rarement et juste que ce soit automatiser ça va me sauver de longues heures à chaque mois
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
21 mars 2013 à 18:37
21 mars 2013 à 18:37
Si tu as par ex ENTRETIENTERRAIN non présent dans Resxx, tu plantes la macro
voici ce que j'avais pondu:
juste 12 macros courtes lançant une macro paramétrée qui fait la liste des libellés présents dans Resxx avec leurs valeurs (Tes espaces parasites sont enlevés)
on parcourt en suite le mois
Lorsque un libellé est présent dans le dico, on a la valeur;sinon on passe; dans ma bidouille un libellé présent, une cellule remplie car je n'avais pas regardé les libellés regroupant des sous libellés(entretien)
voici ce que j'avais pondu:
juste 12 macros courtes lançant une macro paramétrée qui fait la liste des libellés présents dans Resxx avec leurs valeurs (Tes espaces parasites sont enlevés)
on parcourt en suite le mois
Lorsque un libellé est présent dans le dico, on a la valeur;sinon on passe; dans ma bidouille un libellé présent, une cellule remplie car je n'avais pas regardé les libellés regroupant des sous libellés(entretien)
Option Explicit Sub apurer_Janv() affecter_Valeur "janv", "res01" End Sub Sub apurer_fev() affecter_Valeur "fev", "res02" End Sub Sub affecter_Valeur(mois, result) Dim Dico As Object, Lig As Integer, Derlig As Integer Dim Ref As String, Valeur As String With Sheets(result) 'Liste des affectations présentes colonne A et valeur col B Set Dico = CreateObject("scripting.dictionary") Derlig = Columns("A").Find("*", , , , , xlPrevious).Row For Lig = 8 To Derlig If .Cells(Lig, "A") <> "" Then 'enlevement des espaces parasites y compris dans valeur Ref = Trim(.Cells(Lig, "A")) Valeur = Trim(.Cells(Lig, "B")) 'cration du couple affectation-valeurs Dico.Add Ref, Valeur End If Next End With With Sheets(mois) For Lig = 5 To 49 Ref = Cells(Lig, "A") If Ref <> "" Then 'Si l 'affectation existe dans Result copie de la valeur transformée en nombre If Dico.exists(Ref) Then .Cells(Lig, "C") = (Dico.Item(Ref)) * 1 End If Next End With End Sub
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
22 mars 2013 à 15:39
22 mars 2013 à 15:39
Bonjour Michel
Je te remercie te ta patience,
voici le lien pour le fichier : il s'agit d'un vrai fichier provenant de mon logiciel de comptabilité.
https://www.cjoint.com/?3CwpHWNiUsd
Je travaille ce matin sur ce que tu m'as envoyé.. je te reviens
encore merci
Mélanie
Je te remercie te ta patience,
voici le lien pour le fichier : il s'agit d'un vrai fichier provenant de mon logiciel de comptabilité.
https://www.cjoint.com/?3CwpHWNiUsd
Je travaille ce matin sur ce que tu m'as envoyé.. je te reviens
encore merci
Mélanie
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
22 mars 2013 à 17:03
22 mars 2013 à 17:03
Bonjour Michel
Je suis en train d'essayer ton code.. Pour l'instant je n'ai mis que janvier et je n'ai pas ajouter toutes les autres cases.. je voulais juste vérifier si ça fonctionnais..
il ne se passe rien.. je vois qu'il travaille mais rien..
J'ai vu ton message
Si pour une raison x ou y, c'est impossible, il faut que tu fasses dans une feuille nouvelle un lexique par ex "Frais location " ==> "Frais de location"
dois-je toujours créer ce lexique? J'aurais tendance à penser que non en regardant le code, je crois que je dois seulement inscrire les bons termes comme ils doivent apparaître dans la feuille result et ça devrait fonctionner?
J'ai regardé le code pas à pas
j'aurais une question : le derlig arrête à 50, c'est normal? 50 est le nombre de ligne dans ma feuille de mois et non dans mes résultats..
et dans la fonction
verif = vide.. normal?
Désolé, peut-être je dis des conneries.. je suis débutante alors j'essaie de comprendre.. je vais te joindre le fichier dans lequel je travaille présentement avec la feuille importer de mon logiciel de comptabilité sans y avoir essayer ton code alors intact.. si ça peut aider..
Mélanie
Je suis en train d'essayer ton code.. Pour l'instant je n'ai mis que janvier et je n'ai pas ajouter toutes les autres cases.. je voulais juste vérifier si ça fonctionnais..
il ne se passe rien.. je vois qu'il travaille mais rien..
J'ai vu ton message
Si pour une raison x ou y, c'est impossible, il faut que tu fasses dans une feuille nouvelle un lexique par ex "Frais location " ==> "Frais de location"
dois-je toujours créer ce lexique? J'aurais tendance à penser que non en regardant le code, je crois que je dois seulement inscrire les bons termes comme ils doivent apparaître dans la feuille result et ça devrait fonctionner?
J'ai regardé le code pas à pas
j'aurais une question : le derlig arrête à 50, c'est normal? 50 est le nombre de ligne dans ma feuille de mois et non dans mes résultats..
et dans la fonction
verif = vide.. normal?
Désolé, peut-être je dis des conneries.. je suis débutante alors j'essaie de comprendre.. je vais te joindre le fichier dans lequel je travaille présentement avec la feuille importer de mon logiciel de comptabilité sans y avoir essayer ton code alors intact.. si ça peut aider..
Mélanie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
22 mars 2013 à 17:11
22 mars 2013 à 17:11
Bonjour Michel
tel qu'indiqué dans mon précédent message :
voici le fichier sur lequel j'ai fais mes tests, avec la feuille de mon logiciel intacte
https://www.cjoint.com/?3CwrjVQONtV
merci beaucoup
Mélanie
tel qu'indiqué dans mon précédent message :
voici le fichier sur lequel j'ai fais mes tests, avec la feuille de mon logiciel intacte
https://www.cjoint.com/?3CwrjVQONtV
merci beaucoup
Mélanie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
22 mars 2013 à 17:40
22 mars 2013 à 17:40
pour derlig: il manquait un point devant columns("A"): on arrive maintenant à 116
je viens de réessayer pour les frais de transport, (j'ai remis les espaces utiles dans les 2 lignes de Res01): il faut que ce tu appelles soit identique dans Vlookup(libellé_cherché, etc)
j'ai essayé en pas à pas et c'est Ok avec ton premier envoi du classeur: j'ai bien 124 en ventes , 0 en vente epurage et 3 en transport
je te laisse le soin d'écrire les appels pour les autres cellules s...
ci joint la b^te
https://www.cjoint.com/?3CwrH5Se03s
nota laisse tomber mon lien 9 car je me suis rabattu sur les "Vlookup". D'ailleurs, je vais le supprimer
je viens de réessayer pour les frais de transport, (j'ai remis les espaces utiles dans les 2 lignes de Res01): il faut que ce tu appelles soit identique dans Vlookup(libellé_cherché, etc)
j'ai essayé en pas à pas et c'est Ok avec ton premier envoi du classeur: j'ai bien 124 en ventes , 0 en vente epurage et 3 en transport
je te laisse le soin d'écrire les appels pour les autres cellules s...
ci joint la b^te
https://www.cjoint.com/?3CwrH5Se03s
nota laisse tomber mon lien 9 car je me suis rabattu sur les "Vlookup". D'ailleurs, je vais le supprimer
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
22 mars 2013 à 18:20
22 mars 2013 à 18:20
Bonjour Michel
Je tiens à te remercier pour tout ce que tu fais pour moi.. je sais plus tôt que tu as dit que tu en avais marre et j'aimerais bien ne plus te déranger avec ça mais voilà :
ça ne fonctionne pas tout à fait.. presque mais pas tout à fait
J'ai pris la bête, je l'ai enregistré, j'ai copier mon tableau réel dans la feuille du mois, ce qui exactement le même (j'ai copier la colonne A de ton fichier pour être certaine)
ensuite j'ai copier les vrais feuilles provenant de mon système comptabilité
et quand j'exécute :
ça fonctionne mais ça me met 0 partout ou ça doit mettre des chiffres..
je sais que pour transport c'est ok que ça mette un 0 mais pour les ventes ça aurais dû mettre autre choses..
encore un petit coup de main svp? :)
je te met mon fichier
https://www.cjoint.com/?3CwsulPoWu7
encore merci
Mélanie
Je tiens à te remercier pour tout ce que tu fais pour moi.. je sais plus tôt que tu as dit que tu en avais marre et j'aimerais bien ne plus te déranger avec ça mais voilà :
ça ne fonctionne pas tout à fait.. presque mais pas tout à fait
J'ai pris la bête, je l'ai enregistré, j'ai copier mon tableau réel dans la feuille du mois, ce qui exactement le même (j'ai copier la colonne A de ton fichier pour être certaine)
ensuite j'ai copier les vrais feuilles provenant de mon système comptabilité
et quand j'exécute :
ça fonctionne mais ça me met 0 partout ou ça doit mettre des chiffres..
je sais que pour transport c'est ok que ça mette un 0 mais pour les ventes ça aurais dû mettre autre choses..
encore un petit coup de main svp? :)
je te met mon fichier
https://www.cjoint.com/?3CwsulPoWu7
encore merci
Mélanie
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
26 mars 2013 à 04:43
26 mars 2013 à 04:43
bonjour Michel,
Le problème vient du fait que les espaces ne s'enlèvent pas.. j'ai copié les libellés directement via la feuille résultat dans le code et ça fonctionne!
voici ce que ça a donné :
merci, je vais mettre le post résolu étant donné que ça fonctionne et je te remercie encore beaucoup pour ton aide, je n'y serais pas arrivé sans toi
mélanie
Le problème vient du fait que les espaces ne s'enlèvent pas.. j'ai copié les libellés directement via la feuille résultat dans le code et ça fonctionne!
voici ce que ça a donné :
With Sheets(mois) .Range("B5") = chercher_valeur("VENTES ", result) .Range("B6") = chercher_valeur("VENTES (ÉTUVAGE) ", result) .Range("B7") = chercher_valeur("REVENU DE LOCATION ", result) .Range("B8") = chercher_valeur("ESCOMPTES DE CAISSE CLIENT ", result) .Range("B14") = chercher_valeur("ESCOMPTES SUR ACHATS ", result) '.Range ("B15") = chercher_valeur '.Range("B16") = chercher_valeur("", result) .Range("B17") = chercher_valeur("FRAIS DE TRANSPORT ", result) + chercher_valeur("FRAIS DE TRANSPORT AMEX ", result) .Range("B18") = chercher_valeur("ÉLECTRICITÉ ET VAPEUR ", result) '.Range("B19") = chercher_valeur("", result) .Range("B20") = chercher_valeur("ENTRETIEN LIFT ", result) .Range("B21") = chercher_valeur("LIFT LOCATION ", result) .Range("B22") = chercher_valeur("PROPANE ", result) + chercher_valeur("DIESEL ", result) .Range("B23") = chercher_valeur("ENTRETIEN DIVERS ", result) + chercher_valeur("ENTRETIEN ÉQUIPEMENT SÉCHOIRS ", result) + _ chercher_valeur("ENTRETIEN LIGNE CHALEUR ", result) + chercher_valeur("ENTRETIEN ENTREPOT ", result) + chercher_valeur("ENTRETIEN MATERIEL ROULANT ", result) .Range("B24") = chercher_valeur("FRAIS LATTAGE/DÉLATTAGE ", result) + chercher_valeur("DIVERS ", result) + _ chercher_valeur("SANTE ET SECURITE ", result) + chercher_valeur("CONTAINER ", result) + chercher_valeur("OUTIL ", result) .Range("B32") = chercher_valeur("RESTAURANT ", result) .Range("B33") = chercher_valeur("FRAIS DE BUREAU ", result) + chercher_valeur("MEMBERSHIP ASSOCIATION BOIS ", result) .Range("B34") = chercher_valeur("LOCATION MAT ROULANT (CHEV) ", result) + chercher_valeur("LOCATION MATÉRIEL ROULANT 2 ", result) .Range("B35") = chercher_valeur("PERMIS, TAXES, LICENCES ", result) + chercher_valeur("ASSURANCE ", result) .Range("B36") = chercher_valeur("TÉLÉPHONE ", result) .Range("B37") = chercher_valeur("HONORAIRE PROFESSIONNEL ", result) .Range("B38") = chercher_valeur("ESSENCE ", result) .Range("B44") = chercher_valeur("AMORTISSEMENT ", result) .Range("B45") = chercher_valeur("FRAIS DE BANQUE ", result) + chercher_valeur("INTÉRÊTS PRÊT IQ ", result) + _ chercher_valeur("FRAIS CAISSE US ", result) + chercher_valeur("INTRÉRETS PRET BDC ", result) End With End Sub
merci, je vais mettre le post résolu étant donné que ça fonctionne et je te remercie encore beaucoup pour ton aide, je n'y serais pas arrivé sans toi
mélanie