Bonjour à tous,j'éspère que je vais pouvoir trouver de l'aide au plus vite puisque ça urge;voici mon problème:j'essai de me connecter à un classeur excel sans l'ouvrir pour récupérer son contenu et le copier dans mon classeur resultat,ensuite je vais appliquer une serie de calcul sur ces données.jusque là c'est bon,là ou ça bloque c'est au niveau du nom de mon fichier puisqu'il est de la forme "machin_S 01.xls",il y a autant de fichier que de nombre de semaines(même structure) et l'utilisateur choisi d'abord la semaine voulue dans une liste deroulante et à partir de là la macro se connecte à ce fichier et récupère son contenu.si j'indique le chemin complet de l'un des fichier dans ma macro tout se passe bien et la copie se fait normalement mais si j'essaie de le faire de manière dynamique(former le chemin à partir du n° sem choisit) il me dit qu'il ne retrouve pas les feuilles dedans(par exemple,dans le fichier machin_S01" contient 4 feuilles:fe1,fe2,fe3,fe4. il me sort l'erreur suivante:le moteur de la base de donnée Microsoft Jet n'a pas pu trouver l'objet 'fe1$',assurez vous que l'objet existe.Voilà comment j'ai essayé de former le chemin:
rep = "D:\SUIVI QUALI\" 'le repertoire contenant le classeur principal et les autres classeurs à ouvrir
out = ActiveWorkbook.Name
Windows(out).Activate
Sheets("check CC").Select
pref1 = Range("L7").Value 'le n° de la semaine choisi est stocké dans cette cellule
nomEx1 = "fe_" & pref1 & ".xls"
Fich1 = Dir(rep & nomEx1)
If (Fich1 = "") Then
MsgBox ("Le fichier source " & Fich1 & " est introuvable,veuillez vérifier son emplacement SVP!")
Else
.....
j'utilisais déjà ce traitement dans d'autres projets et ça marchait nickel,j'ai définit les feuilles sources et les feuilles destination et j'utilise la syntaxe suivante pour réaliser la cnx et la copie à partir des fichiers fermés.
ConsoDatas Fich1, Source1, Cible1 'ces instructions sont placées aprés le else
ConsoDatas Fich2, Source2, Cible1
''et voici la ft que j'utilise pour ça
Public Sub ConsoDatas(NomFichier$, FeuilleSource$, FeuilleCible$)
'Va chercher dans le classeur NomFichier (sans l'ouvrir) les données
'de la feuille FeuilleSource et les copie dans la feuille FeuilleCible
'du classeur actif, à la suite des données (éventuellement) déjà présentes.
'(La ligne d'entêtes de FeuilleSource n'est pas importée)
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim Li&, FeuilleDest
' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droits.
szSQL = "SELECT * FROM [" & FeuilleSource & "$];"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
'où envoyer les données :
Set FeuilleDest = ActiveWorkbook.Sheets(FeuilleCible)
Li = FeuilleDest.Range("A65536").End(xlUp).Row + 1
'envoi sur la première ligne vide
If Not rsData.EOF Then
FeuilleDest.Range("A" & Li).CopyFromRecordset rsData
Else
'si la source était vide...
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If
''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing
End Sub
en faisant certains tests j'ai compris la cause de ce problem:en fait le système est positionné sur le classeur principal c'est pour cette raison qu'il ne retrouve pas la feuille désirée,c'est normal puisque je manipule un classeur fermé et je veux conserver ce mode mais apparement rien n'y fait.quelqu'un peut m'aider à ce sujet?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. En clair, quel est le message d'erreur, à quel niveau, quelle est la variable en erreur, quelle est la valeur de fe1$ et quelle devrait-elle être ? Un peu au hasard : pref1 = Format(Range("L7").Value, "00") si le n° de semaine est toujours à 2 chiffres. Cordialement. Daniel
Bonjour à tous,j'éspère que je vais pouvoir trouver de l'aide au plus vite puisque ça urge;voici mon problème:j'essai de me connecter à un classeur excel sans l'ouvrir pour récupérer son contenu et le copier dans mon classeur resultat,ensuite je vais appliquer une serie de calcul sur ces données.jusque là c'est bon,là ou ça bloque c'est au niveau du nom de mon fichier puisqu'il est de la forme "machin_S 01.xls",il y a autant de fichier que de nombre de semaines(même structure) et l'utilisateur choisi d'abord la semaine voulue dans une liste deroulante et à partir de là la macro se connecte à ce fichier et récupère son contenu.si j'indique le chemin complet de l'un des fichier dans ma macro tout se passe bien et la copie se fait normalement mais si j'essaie de le faire de manière dynamique(former le chemin à partir du n° sem choisit) il me dit qu'il ne retrouve pas les feuilles dedans(par exemple,dans le fichier machin_S01" contient 4 feuilles:fe1,fe2,fe3,fe4. il me sort l'erreur suivante:le moteur de la base de donnée Microsoft Jet n'a pas pu trouver l'objet 'fe1$',assurez vous que l'objet existe.Voilà comment j'ai essayé de former le chemin: rep = "D:SUIVI QUALI" 'le repertoire contenant le classeur principal et les autres classeurs à ouvrir out = ActiveWorkbook.Name Windows(out).Activate Sheets("check CC").Select pref1 = Range("L7").Value 'le n° de la semaine choisi est stocké dans cette cellule nomEx1 = "fe_" & pref1 & ".xls" Fich1 = Dir(rep & nomEx1) If (Fich1 = "") Then MsgBox ("Le fichier source " & Fich1 & " est introuvable,veuillez vérifier son emplacement SVP!") Else .... j'utilisais déjà ce traitement dans d'autres projets et ça marchait nickel,j'ai définit les feuilles sources et les feuilles destination et j'utilise la syntaxe suivante pour réaliser la cnx et la copie à partir des fichiers fermés. ConsoDatas Fich1, Source1, Cible1 'ces instructions sont placées aprés le else ConsoDatas Fich2, Source2, Cible1
''et voici la ft que j'utilise pour ça
Public Sub ConsoDatas(NomFichier$, FeuilleSource$, FeuilleCible$) 'Va chercher dans le classeur NomFichier (sans l'ouvrir) les données 'de la feuille FeuilleSource et les copie dans la feuille FeuilleCible 'du classeur actif, à la suite des données (éventuellement) déjà présentes. '(La ligne d'entêtes de FeuilleSource n'est pas importée) 'nécessite une référence à la librairie 'Microsoft ActiveX Data Object 2.x Library Dim rsData As ADODB.Recordset Dim szConnect As String Dim szSQL As String Dim Li&, FeuilleDest
' La requête est basée sur le nom de la feuille. Ce nom ' doit se terminer par un $ et doit être entouré de crochets droits. szSQL = "SELECT * FROM [" & FeuilleSource & "$];"
Set rsData = New ADODB.Recordset rsData.Open szSQL, szConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText
'où envoyer les données : Set FeuilleDest = ActiveWorkbook.Sheets(FeuilleCible) Li = FeuilleDest.Range("A65536").End(xlUp).Row + 1 'envoi sur la première ligne vide If Not rsData.EOF Then FeuilleDest.Range("A" & Li).CopyFromRecordset rsData Else 'si la source était vide... MsgBox "Aucun enregistrement renvoyé.", vbCritical End If
''' On nettoie pour finir... rsData.Close Set rsData = Nothing
End Sub
en faisant certains tests j'ai compris la cause de ce problem:en fait le système est positionné sur le classeur principal c'est pour cette raison qu'il ne retrouve pas la feuille désirée,c'est normal puisque je manipule un classeur fermé et je veux conserver ce mode mais apparement rien n'y fait.quelqu'un peut m'aider à ce sujet?
Bonjour.
En clair, quel est le message d'erreur, à quel niveau, quelle est la
variable en erreur, quelle est la valeur de fe1$ et quelle devrait-elle
être ?
Un peu au hasard :
pref1 = Format(Range("L7").Value, "00")
si le n° de semaine est toujours à 2 chiffres.
Cordialement.
Daniel
Bonjour à tous,j'éspère que je vais pouvoir trouver de l'aide au plus vite
puisque ça urge;voici mon problème:j'essai de me connecter à un classeur
excel sans l'ouvrir pour récupérer son contenu et le copier dans mon classeur
resultat,ensuite je vais appliquer une serie de calcul sur ces données.jusque
là c'est bon,là ou ça bloque c'est au niveau du nom de mon fichier puisqu'il
est de la forme "machin_S 01.xls",il y a autant de fichier que de nombre de
semaines(même structure) et l'utilisateur choisi d'abord la semaine voulue
dans une liste deroulante et à partir de là la macro se connecte à ce fichier
et récupère son contenu.si j'indique le chemin complet de l'un des fichier
dans ma macro tout se passe bien et la copie se fait normalement mais si
j'essaie de le faire de manière dynamique(former le chemin à partir du n° sem
choisit) il me dit qu'il ne retrouve pas les feuilles dedans(par exemple,dans
le fichier machin_S01" contient 4 feuilles:fe1,fe2,fe3,fe4. il me sort
l'erreur suivante:le moteur de la base de donnée Microsoft Jet n'a pas pu
trouver l'objet 'fe1$',assurez vous que l'objet existe.Voilà comment j'ai
essayé de former le chemin:
rep = "D:SUIVI QUALI" 'le repertoire contenant le classeur principal et les
autres classeurs à ouvrir
out = ActiveWorkbook.Name
Windows(out).Activate
Sheets("check CC").Select
pref1 = Range("L7").Value 'le n° de la semaine choisi est stocké dans cette
cellule
nomEx1 = "fe_" & pref1 & ".xls"
Fich1 = Dir(rep & nomEx1)
If (Fich1 = "") Then
MsgBox ("Le fichier source " & Fich1 & " est introuvable,veuillez vérifier
son emplacement SVP!")
Else
....
j'utilisais déjà ce traitement dans d'autres projets et ça marchait
nickel,j'ai définit les feuilles sources et les feuilles destination et
j'utilise la syntaxe suivante pour réaliser la cnx et la copie à partir des
fichiers fermés. ConsoDatas Fich1, Source1, Cible1 'ces instructions sont
placées aprés le else
ConsoDatas Fich2, Source2, Cible1
''et voici la ft que j'utilise pour ça
Public Sub ConsoDatas(NomFichier$, FeuilleSource$, FeuilleCible$)
'Va chercher dans le classeur NomFichier (sans l'ouvrir) les données
'de la feuille FeuilleSource et les copie dans la feuille FeuilleCible
'du classeur actif, à la suite des données (éventuellement) déjà présentes.
'(La ligne d'entêtes de FeuilleSource n'est pas importée)
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim Li&, FeuilleDest
' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droits.
szSQL = "SELECT * FROM [" & FeuilleSource & "$];"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
'où envoyer les données :
Set FeuilleDest = ActiveWorkbook.Sheets(FeuilleCible)
Li = FeuilleDest.Range("A65536").End(xlUp).Row + 1
'envoi sur la première ligne vide
If Not rsData.EOF Then
FeuilleDest.Range("A" & Li).CopyFromRecordset rsData
Else
'si la source était vide...
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If
''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing
End Sub
en faisant certains tests j'ai compris la cause de ce problem:en fait le
système est positionné sur le classeur principal c'est pour cette raison
qu'il ne retrouve pas la feuille désirée,c'est normal puisque je manipule un
classeur fermé et je veux conserver ce mode mais apparement rien n'y
fait.quelqu'un peut m'aider à ce sujet?
Bonjour. En clair, quel est le message d'erreur, à quel niveau, quelle est la variable en erreur, quelle est la valeur de fe1$ et quelle devrait-elle être ? Un peu au hasard : pref1 = Format(Range("L7").Value, "00") si le n° de semaine est toujours à 2 chiffres. Cordialement. Daniel
Bonjour à tous,j'éspère que je vais pouvoir trouver de l'aide au plus vite puisque ça urge;voici mon problème:j'essai de me connecter à un classeur excel sans l'ouvrir pour récupérer son contenu et le copier dans mon classeur resultat,ensuite je vais appliquer une serie de calcul sur ces données.jusque là c'est bon,là ou ça bloque c'est au niveau du nom de mon fichier puisqu'il est de la forme "machin_S 01.xls",il y a autant de fichier que de nombre de semaines(même structure) et l'utilisateur choisi d'abord la semaine voulue dans une liste deroulante et à partir de là la macro se connecte à ce fichier et récupère son contenu.si j'indique le chemin complet de l'un des fichier dans ma macro tout se passe bien et la copie se fait normalement mais si j'essaie de le faire de manière dynamique(former le chemin à partir du n° sem choisit) il me dit qu'il ne retrouve pas les feuilles dedans(par exemple,dans le fichier machin_S01" contient 4 feuilles:fe1,fe2,fe3,fe4. il me sort l'erreur suivante:le moteur de la base de donnée Microsoft Jet n'a pas pu trouver l'objet 'fe1$',assurez vous que l'objet existe.Voilà comment j'ai essayé de former le chemin: rep = "D:SUIVI QUALI" 'le repertoire contenant le classeur principal et les autres classeurs à ouvrir out = ActiveWorkbook.Name Windows(out).Activate Sheets("check CC").Select pref1 = Range("L7").Value 'le n° de la semaine choisi est stocké dans cette cellule nomEx1 = "fe_" & pref1 & ".xls" Fich1 = Dir(rep & nomEx1) If (Fich1 = "") Then MsgBox ("Le fichier source " & Fich1 & " est introuvable,veuillez vérifier son emplacement SVP!") Else .... j'utilisais déjà ce traitement dans d'autres projets et ça marchait nickel,j'ai définit les feuilles sources et les feuilles destination et j'utilise la syntaxe suivante pour réaliser la cnx et la copie à partir des fichiers fermés. ConsoDatas Fich1, Source1, Cible1 'ces instructions sont placées aprés le else ConsoDatas Fich2, Source2, Cible1
''et voici la ft que j'utilise pour ça
Public Sub ConsoDatas(NomFichier$, FeuilleSource$, FeuilleCible$) 'Va chercher dans le classeur NomFichier (sans l'ouvrir) les données 'de la feuille FeuilleSource et les copie dans la feuille FeuilleCible 'du classeur actif, à la suite des données (éventuellement) déjà présentes. '(La ligne d'entêtes de FeuilleSource n'est pas importée) 'nécessite une référence à la librairie 'Microsoft ActiveX Data Object 2.x Library Dim rsData As ADODB.Recordset Dim szConnect As String Dim szSQL As String Dim Li&, FeuilleDest
' La requête est basée sur le nom de la feuille. Ce nom ' doit se terminer par un $ et doit être entouré de crochets droits. szSQL = "SELECT * FROM [" & FeuilleSource & "$];"
Set rsData = New ADODB.Recordset rsData.Open szSQL, szConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText
'où envoyer les données : Set FeuilleDest = ActiveWorkbook.Sheets(FeuilleCible) Li = FeuilleDest.Range("A65536").End(xlUp).Row + 1 'envoi sur la première ligne vide If Not rsData.EOF Then FeuilleDest.Range("A" & Li).CopyFromRecordset rsData Else 'si la source était vide... MsgBox "Aucun enregistrement renvoyé.", vbCritical End If
''' On nettoie pour finir... rsData.Close Set rsData = Nothing
End Sub
en faisant certains tests j'ai compris la cause de ce problem:en fait le système est positionné sur le classeur principal c'est pour cette raison qu'il ne retrouve pas la feuille désirée,c'est normal puisque je manipule un classeur fermé et je veux conserver ce mode mais apparement rien n'y fait.quelqu'un peut m'aider à ce sujet?