Req sur 3 fichiers Excel - Comment s'utilise RechercheV en VBA svp ? - VB/VBA/VBS - Programmation
Marsh Posté le 03-01-2011 à 19:46:20
Bon, je pense avoir trouvé comment contourner mon problème :
Dans un nouveau fichier je vais faire :
- Onglet 1 : requête sur mon 1er fichier où je prends tous les enregistrements avec les colonnes qui m'intéressent
- Onglets 2 et 3: l'intégralité de 2 autres fichiers (requêtes aussi)
- Onglet 4 : Les boutons pour lancer mes traitements et macros
- Onglet 5 : Une macro où je reprends mon onglet ligne par ligne, champ par champ, et j'y incluerai à chaque occurrence une recherche verticale sur les onglets 2 et 3 pour récupérer les données issues des jointures. Ca sent l'usine à gaz, mais c'est pour des fichiers qui dépassent pas les 1000 lignes ni les 20 champs.
En plus ça règlera mes problèmes d'enregistrements manquants suite aux jointures introuvables
Par contre si vous avez sous la main un bout de code pour m'aider à voir comment fonctionne la recherche verticale en VBA Excel ça m'aiderait bcp svp !
Merci d'avance
Marsh Posté le 07-01-2011 à 16:19:09
Qu'est ce que t'appel recherche verticale ?
une cellule ou une plage de cellule, en VBA c'est un objet de type Range
Exemple de code (écris à la main sans vérification) pour parcourir une plage "A1:A999" :
Dim objPlageAParcourir as Range
Dim objCellule as Range
'Il faut remplacer activesheet par une référence correcte :
Set objPlageAParcourir = Activesheet.Range("A1:A999" )
For Each objCellule in objPlageAParcourir
Debug.print objCellule.Address & " : " & objCellule.Value
Next objCellule
Marsh Posté le 07-01-2011 à 16:25:44
oui ok, j'ai pigé je suis presque HS
l'équivalent des fonctions utilisables en barre de formule se situe dans l'objet suivant :
Application.WorksheetFunction
la RECHERCHEV qui est VLOOKUP en anglais, est donc disponible :
Application.WorksheetFunction.VLookup
Marsh Posté le 07-01-2011 à 23:02:59
Xxxaaavvv a écrit : oui ok, j'ai pigé je suis presque HS l'équivalent des fonctions utilisables en barre de formule se situe dans l'objet suivant : Application.WorksheetFunction la RECHERCHEV qui est VLOOKUP en anglais, est donc disponible : Application.WorksheetFunction.VLookup |
c bon j'ai fini ma mission, je suis re au chomdu depuis 2 jours
Et ça a très bien marché avec le VLookUp
Marsh Posté le 03-01-2011 à 17:09:37
Voici mon problème :
Dans un fichier Excel je dois consolider des données de 3 fichiers Excel différents avec des jointures entre eux.
Comment puis-je exécuter cette requête et obtenir le résultat dans ce nouveau fichier Excel ?
La seule solution que j'ai trouvé jusqu'à maintenant c'est de regrouper le contenu des 3 fichiers Excel à consolider dans un fichier Excel temporaire sous 3 onglets différents, et ensuite je peux faire dans un nouveau fichier Excel une requête sur les 3 onglets de ce fichier temporaire.
(3 fichiers à 1 onglet ==> 1 fichier temporaire à 3 onglets ==> Fichier final avec le résultat de ma requête)
Seulement, j'aimerais éviter de passer par ce fichier intermédiaire, mais quand je veux créer une nouvelle requête il ne me propose qu'un seul fichier à sélectionner. Et quand j'essaie de faire cette requête directement à partir du fichier temporaire, il bloque car il essaye d'accéder à lui-même et donc ça bug ...
J'aimerais faire ça en VBA si possible
Plz help !
N.B. : Je ne peux utiliser qu'Excel !! Pas d'Access ni rien entre les 2 !
Message édité par Kirvel le 03-01-2011 à 19:47:53
---------------
MyAnimeList