Trouver une valeur dans un fichier sans l'ouvrir et la recopier
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je veux faire une macro pour trouver une valeur dans une autre feuille s'en l'ouvrir.
La valeur à chercher dans cette feuille se trouve dans la cellule "A2" de ma feuille ouverte et je veux trouver la valeur qui est comprise dans le nom dans la colonne "B" de mon fichier non ouvert. ex: je cherche C28021 dans C28021-004-12. Lorsque la valeur à été trouvé dans la feuille non ouverte, je veux la copier dans le cellule "A2" de ma feuille ouverte.
J'ai essayé avec une méthode ADODB mais la je suis un peu perdu!!
Voici ce que j'ai fait, j'ai un erreur sur la ligne texte_SQL qui dit que la Déclaration existante dans la portée en cours et je ne trouve pas c'est quoi le probème:
Pouvez-vous m'aider?
Merci!
Je veux faire une macro pour trouver une valeur dans une autre feuille s'en l'ouvrir.
La valeur à chercher dans cette feuille se trouve dans la cellule "A2" de ma feuille ouverte et je veux trouver la valeur qui est comprise dans le nom dans la colonne "B" de mon fichier non ouvert. ex: je cherche C28021 dans C28021-004-12. Lorsque la valeur à été trouvé dans la feuille non ouverte, je veux la copier dans le cellule "A2" de ma feuille ouverte.
J'ai essayé avec une méthode ADODB mais la je suis un peu perdu!!
Voici ce que j'ai fait, j'ai un erreur sur la ligne texte_SQL qui dit que la Déclaration existante dans la portée en cours et je ne trouve pas c'est quoi le probème:
Dim Cn As ADODB.Connection Dim Fichier2, texte_SQL As String Dim NomFeuille As String, texte_SQL As String Dim Rst As ADODB.Recordset'Comparaison des deux fichiers '----------------------------- Sondage = Cells(2, 1).Value 'Définit le classeur fermé servant de base de données Fichier2 = "M:\Entrepot\BDFS\0_Sondages_a_saisir_Geotec\" & "SONDAGE.xlsx" 'Nom de la feuille dans le classeur fermé NomFeuille = "SONDAGE" Set Cn = New ADODB.Connection '--- Connexion --- With Cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & Fichier2 & ";Extended Properties=""Excel 12.0;HDR=YES;""" .Open End With '----------------- '... la requête ... 'Value = application.vlookup(Sondage,range("B").Cells(.rows.count, 1).end(xldown)),1,1) texte_SQL = "SELECT*FROM*&fichier2" Set Rst = New ADODB.Recordset Rst.Open texte_SQL, Cn, adOpenStatic, adLockReadOnly MsgBox Rst.RecordCount & "Nombre de lignes" Rst.Close Set Rst = Nothing '--- Fermeture connexion --- Cn.Close Set Cn = Nothing
Pouvez-vous m'aider?
Merci!
A voir également:
- Trouver une valeur dans un fichier sans l'ouvrir et la recopier
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, peut-être parce que tu déclares deux fois
texte_SQL As String?
Bonjour à tous
Tu es obligé de laisser le classeur source fermé ?
ce classeur est il une liste de données ?
Tu es obligé de laisser le classeur source fermé ?
ce classeur est il une liste de données ?
Bonjour Michel,
J'ai effectué quelques essais avec le fichier ouvert et je n'y arrivais pas! Est-ce possible de l'ouvrir dans le voir à l'écran?
Dans ce classeur, j'ai des données dans les colonnes de A à CB, qui sont des fois des lettres, des chiffres,des dates, des lettres et des chiffres (C12004-004-09).
Ce que je veux c'est de rechercher la valeur ex: C12004 du premier classeur dans la colonne B de ce classeur qui contient les valeurs comme C12004-004-09.
Merci beaucoup!
J'ai effectué quelques essais avec le fichier ouvert et je n'y arrivais pas! Est-ce possible de l'ouvrir dans le voir à l'écran?
Dans ce classeur, j'ai des données dans les colonnes de A à CB, qui sont des fois des lettres, des chiffres,des dates, des lettres et des chiffres (C12004-004-09).
Ce que je veux c'est de rechercher la valeur ex: C12004 du premier classeur dans la colonne B de ce classeur qui contient les valeurs comme C12004-004-09.
Merci beaucoup!
J'ai effectué quelques essais avec le fichier ouvert et je n'y arrivais pas! Est-ce possible de l'ouvrir dans le voir à l'écran?
Non
tu ne répond pas mA question: ce classeur est il une liste de données ?
et si oui quel est le nom de l'ent^te de la colonne B
un texte sql se présente ainsi
nomfeuille="sondage" & "$"
Champ=???? ent^te colonne B
valeur=cells(2,1)
Select * From nomfeuille Where champ Like '*" & valeur & "*'
maintenant si tu cherches seulement le nombre de C120004 (et pas d'autres valeurs) dans la colonne B, il y a une astuce qui t'évite de passer par ADO
de plus avec 1 formule dans la feuille du classeur source et 1 ou 2 lignes de code sans ouvrir le classeur
Michel
Non
tu ne répond pas mA question: ce classeur est il une liste de données ?
et si oui quel est le nom de l'ent^te de la colonne B
un texte sql se présente ainsi
nomfeuille="sondage" & "$"
Champ=???? ent^te colonne B
valeur=cells(2,1)
Select * From nomfeuille Where champ Like '*" & valeur & "*'
maintenant si tu cherches seulement le nombre de C120004 (et pas d'autres valeurs) dans la colonne B, il y a une astuce qui t'évite de passer par ADO
de plus avec 1 formule dans la feuille du classeur source et 1 ou 2 lignes de code sans ouvrir le classeur
Michel
Rebonjour Michel,
Désolé, qu'est-ce que tu entend au juste par liste de données?
J'ai une colonne avec plusieurs valeurs écrite sous la forme Cxxxxxx-xxx-xx. Oui, j'ai une entête de colonne qui s'appelle "NO_SONDAGE".
Non, je ne recherche pas seulement la valeur C12004, je recherche la valeur qui est dans ma cellule "A2" de mon autres classeur et qui varie.
Merci!
Désolé, qu'est-ce que tu entend au juste par liste de données?
J'ai une colonne avec plusieurs valeurs écrite sous la forme Cxxxxxx-xxx-xx. Oui, j'ai une entête de colonne qui s'appelle "NO_SONDAGE".
Non, je ne recherche pas seulement la valeur C12004, je recherche la valeur qui est dans ma cellule "A2" de mon autres classeur et qui varie.
Merci!
Met moi ton fichier source en pièce jointe: je vais chercher car il y a longtemps que je n'ai pas fait d'adodb. ca me remettra dans le bain
Dans l’attente
Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente
Effectivement, j'me doutais bien que c'était ça l'erreur! Je viens de trouver le doublon ce matin, hier je le trouvais pas.
Maintenant, j'ai une erreur de syntaxe dans la clause FROM sur la ligne .