-----Message d'origine-----
Bonjour Anthony,
En principe, ta procédure devrait fonctionner. Tu dois
regarder du côté de ta base de données Access.
Est-ce qu'il y a des enregistrements vides dans ta table ?
Est-ce que le nombre d'enregistrements importés est
exact ?
Le champ 1 de ta table correspondant à la colonne A dans
excel contient quel type de données ?
Et si tu ne trouves pas et que l'informations contenues
dans ta table ne sont pas "secrètes", tu peux me l'envoyer
bal perso. (Seulement cette table que tu copies vers une
nouvelle base de données vierges.)
Salutations!
"Anthony" a écrit
dans le message de
news:099401c3a12f$4831e470$
Bonjour,
J'ai un problème dans un recordset. Je récupére des
données depuis Access et j'insére mes données dans Excel.
Je place mes données en A11 par exemple et imaginons que
mes données vont de A11 à R51. A chaque fois, dans ma
colonne A au dernier enregistrements il ne m'insére pas
les données mais le numéro de la ligne c'est à dire dans
ce cas 51. J'ai uniquement ce problème que dans une
cellule et dans la première colonne de mon dernier
enregistrement. Pourriez vous m'aider?.
Voici mon Code
Public Sub CopyFromRecordset()
Dim Db1 As Database
Dim Rs1 As Recordset, Nb As Long
Dim Sh As Worksheet, Rg As Range, Nl As Range
Dim Chemin As String, Fichier As String
'Cette variable te permet de déterminer
'le type de bordure désiré...
Dim bordure As MsoLineStyle
'efface le signe égal...et lorsque tu
'le remplace, tu auras la liste des
'constantes disponibles
bordure = msoLineSingle
'utilise une variable pour la feuille
'et la première cellule où seront copiées les
'données...Ceci permet à ta procédure de s'exécuter
'sans avoir à préselectionner la feuille....
Set Sh = Worksheets("Test")
With Sh
Set Rg = .Range("A10")
End With
'Définir le chemin de la base de données "ici en chemin
absolu et non relatif " à ouvrir
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path
& "GeneralReport.mdb")
'Définir la requête de la base de données à ouvrir
Set Rs1 = Db1.OpenRecordset("REPORT", dbOpenDynaset)
'Efface toutes les données se trouvant dans la plage
'de cellules devant recevoir les nouvelles données.
Rg.CurrentRegion.Clear
'Teste pour savoir si La table contient au moins 1
enregistrement
If Rs1.EOF = False Then
'Place dans une variable Nb le nombre
'champs que contient le recordset
Nb = Rs1.Fields.Count - 1
'Boucle pour inscrire le nom des champs dans
'la première ligne de ta plage de cellule
'Rg représente la première cellule...
For a = 0 To Nb
Rg(, 1 + a) = Rs1.Fields(a).Name
Next
'Met en gras, le texte de la ligne de titres...
Rg.Resize(, Nb + 1).Font.Bold = True
Rg.Resize(, Nb + 1).Interior.ColorIndex = 15
'copie les données du recordset vers la feuille...
Rg.Offset(1).CopyFromRecordset Rs1
....
Merci de votre aide.
Anthony
.
-----Message d'origine-----
Bonjour Anthony,
En principe, ta procédure devrait fonctionner. Tu dois
regarder du côté de ta base de données Access.
Est-ce qu'il y a des enregistrements vides dans ta table ?
Est-ce que le nombre d'enregistrements importés est
exact ?
Le champ 1 de ta table correspondant à la colonne A dans
excel contient quel type de données ?
Et si tu ne trouves pas et que l'informations contenues
dans ta table ne sont pas "secrètes", tu peux me l'envoyer
bal perso. (Seulement cette table que tu copies vers une
nouvelle base de données vierges.)
Salutations!
"Anthony" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:099401c3a12f$4831e470$a401280a@phx.gbl...
Bonjour,
J'ai un problème dans un recordset. Je récupére des
données depuis Access et j'insére mes données dans Excel.
Je place mes données en A11 par exemple et imaginons que
mes données vont de A11 à R51. A chaque fois, dans ma
colonne A au dernier enregistrements il ne m'insére pas
les données mais le numéro de la ligne c'est à dire dans
ce cas 51. J'ai uniquement ce problème que dans une
cellule et dans la première colonne de mon dernier
enregistrement. Pourriez vous m'aider?.
Voici mon Code
Public Sub CopyFromRecordset()
Dim Db1 As Database
Dim Rs1 As Recordset, Nb As Long
Dim Sh As Worksheet, Rg As Range, Nl As Range
Dim Chemin As String, Fichier As String
'Cette variable te permet de déterminer
'le type de bordure désiré...
Dim bordure As MsoLineStyle
'efface le signe égal...et lorsque tu
'le remplace, tu auras la liste des
'constantes disponibles
bordure = msoLineSingle
'utilise une variable pour la feuille
'et la première cellule où seront copiées les
'données...Ceci permet à ta procédure de s'exécuter
'sans avoir à préselectionner la feuille....
Set Sh = Worksheets("Test")
With Sh
Set Rg = .Range("A10")
End With
'Définir le chemin de la base de données "ici en chemin
absolu et non relatif " à ouvrir
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path
& "GeneralReport.mdb")
'Définir la requête de la base de données à ouvrir
Set Rs1 = Db1.OpenRecordset("REPORT", dbOpenDynaset)
'Efface toutes les données se trouvant dans la plage
'de cellules devant recevoir les nouvelles données.
Rg.CurrentRegion.Clear
'Teste pour savoir si La table contient au moins 1
enregistrement
If Rs1.EOF = False Then
'Place dans une variable Nb le nombre
'champs que contient le recordset
Nb = Rs1.Fields.Count - 1
'Boucle pour inscrire le nom des champs dans
'la première ligne de ta plage de cellule
'Rg représente la première cellule...
For a = 0 To Nb
Rg(, 1 + a) = Rs1.Fields(a).Name
Next
'Met en gras, le texte de la ligne de titres...
Rg.Resize(, Nb + 1).Font.Bold = True
Rg.Resize(, Nb + 1).Interior.ColorIndex = 15
'copie les données du recordset vers la feuille...
Rg.Offset(1).CopyFromRecordset Rs1
....
Merci de votre aide.
Anthony
.
-----Message d'origine-----
Bonjour Anthony,
En principe, ta procédure devrait fonctionner. Tu dois
regarder du côté de ta base de données Access.
Est-ce qu'il y a des enregistrements vides dans ta table ?
Est-ce que le nombre d'enregistrements importés est
exact ?
Le champ 1 de ta table correspondant à la colonne A dans
excel contient quel type de données ?
Et si tu ne trouves pas et que l'informations contenues
dans ta table ne sont pas "secrètes", tu peux me l'envoyer
bal perso. (Seulement cette table que tu copies vers une
nouvelle base de données vierges.)
Salutations!
"Anthony" a écrit
dans le message de
news:099401c3a12f$4831e470$
Bonjour,
J'ai un problème dans un recordset. Je récupére des
données depuis Access et j'insére mes données dans Excel.
Je place mes données en A11 par exemple et imaginons que
mes données vont de A11 à R51. A chaque fois, dans ma
colonne A au dernier enregistrements il ne m'insére pas
les données mais le numéro de la ligne c'est à dire dans
ce cas 51. J'ai uniquement ce problème que dans une
cellule et dans la première colonne de mon dernier
enregistrement. Pourriez vous m'aider?.
Voici mon Code
Public Sub CopyFromRecordset()
Dim Db1 As Database
Dim Rs1 As Recordset, Nb As Long
Dim Sh As Worksheet, Rg As Range, Nl As Range
Dim Chemin As String, Fichier As String
'Cette variable te permet de déterminer
'le type de bordure désiré...
Dim bordure As MsoLineStyle
'efface le signe égal...et lorsque tu
'le remplace, tu auras la liste des
'constantes disponibles
bordure = msoLineSingle
'utilise une variable pour la feuille
'et la première cellule où seront copiées les
'données...Ceci permet à ta procédure de s'exécuter
'sans avoir à préselectionner la feuille....
Set Sh = Worksheets("Test")
With Sh
Set Rg = .Range("A10")
End With
'Définir le chemin de la base de données "ici en chemin
absolu et non relatif " à ouvrir
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path
& "GeneralReport.mdb")
'Définir la requête de la base de données à ouvrir
Set Rs1 = Db1.OpenRecordset("REPORT", dbOpenDynaset)
'Efface toutes les données se trouvant dans la plage
'de cellules devant recevoir les nouvelles données.
Rg.CurrentRegion.Clear
'Teste pour savoir si La table contient au moins 1
enregistrement
If Rs1.EOF = False Then
'Place dans une variable Nb le nombre
'champs que contient le recordset
Nb = Rs1.Fields.Count - 1
'Boucle pour inscrire le nom des champs dans
'la première ligne de ta plage de cellule
'Rg représente la première cellule...
For a = 0 To Nb
Rg(, 1 + a) = Rs1.Fields(a).Name
Next
'Met en gras, le texte de la ligne de titres...
Rg.Resize(, Nb + 1).Font.Bold = True
Rg.Resize(, Nb + 1).Interior.ColorIndex = 15
'copie les données du recordset vers la feuille...
Rg.Offset(1).CopyFromRecordset Rs1
....
Merci de votre aide.
Anthony
.
-----Message d'origine-----
Bonjour Anthony,
En principe, ta procédure devrait fonctionner. Tu dois
regarder du côté de ta base de données Access.
Est-ce qu'il y a des enregistrements vides dans ta table ?
Est-ce que le nombre d'enregistrements importés est
exact ?
Le champ 1 de ta table correspondant à la colonne A dans
excel contient quel type de données ?
Et si tu ne trouves pas et que l'informations contenues
dans ta table ne sont pas "secrètes", tu peux me l'envoyer
bal perso. (Seulement cette table que tu copies vers une
nouvelle base de données vierges.)
Salutations!
"Anthony" a écrit
dans le message de
news:099401c3a12f$4831e470$
Bonjour,
J'ai un problème dans un recordset. Je récupére des
données depuis Access et j'insére mes données dans Excel.
Je place mes données en A11 par exemple et imaginons que
mes données vont de A11 à R51. A chaque fois, dans ma
colonne A au dernier enregistrements il ne m'insére pas
les données mais le numéro de la ligne c'est à dire dans
ce cas 51. J'ai uniquement ce problème que dans une
cellule et dans la première colonne de mon dernier
enregistrement. Pourriez vous m'aider?.
Voici mon Code
Public Sub CopyFromRecordset()
Dim Db1 As Database
Dim Rs1 As Recordset, Nb As Long
Dim Sh As Worksheet, Rg As Range, Nl As Range
Dim Chemin As String, Fichier As String
'Cette variable te permet de déterminer
'le type de bordure désiré...
Dim bordure As MsoLineStyle
'efface le signe égal...et lorsque tu
'le remplace, tu auras la liste des
'constantes disponibles
bordure = msoLineSingle
'utilise une variable pour la feuille
'et la première cellule où seront copiées les
'données...Ceci permet à ta procédure de s'exécuter
'sans avoir à préselectionner la feuille....
Set Sh = Worksheets("Test")
With Sh
Set Rg = .Range("A10")
End With
'Définir le chemin de la base de données "ici en chemin
absolu et non relatif " à ouvrir
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path
& "GeneralReport.mdb")
'Définir la requête de la base de données à ouvrir
Set Rs1 = Db1.OpenRecordset("REPORT", dbOpenDynaset)
'Efface toutes les données se trouvant dans la plage
'de cellules devant recevoir les nouvelles données.
Rg.CurrentRegion.Clear
'Teste pour savoir si La table contient au moins 1
enregistrement
If Rs1.EOF = False Then
'Place dans une variable Nb le nombre
'champs que contient le recordset
Nb = Rs1.Fields.Count - 1
'Boucle pour inscrire le nom des champs dans
'la première ligne de ta plage de cellule
'Rg représente la première cellule...
For a = 0 To Nb
Rg(, 1 + a) = Rs1.Fields(a).Name
Next
'Met en gras, le texte de la ligne de titres...
Rg.Resize(, Nb + 1).Font.Bold = True
Rg.Resize(, Nb + 1).Interior.ColorIndex = 15
'copie les données du recordset vers la feuille...
Rg.Offset(1).CopyFromRecordset Rs1
....
Merci de votre aide.
Anthony
.
-----Message d'origine-----
Bonjour Anthony,
En principe, ta procédure devrait fonctionner. Tu dois
regarder du côté de ta base de données Access.
Est-ce qu'il y a des enregistrements vides dans ta table ?
Est-ce que le nombre d'enregistrements importés est
exact ?
Le champ 1 de ta table correspondant à la colonne A dans
excel contient quel type de données ?
Et si tu ne trouves pas et que l'informations contenues
dans ta table ne sont pas "secrètes", tu peux me l'envoyer
bal perso. (Seulement cette table que tu copies vers une
nouvelle base de données vierges.)
Salutations!
"Anthony" <anonymous@discussions.microsoft.com> a écrit
dans le message de
news:099401c3a12f$4831e470$a401280a@phx.gbl...
Bonjour,
J'ai un problème dans un recordset. Je récupére des
données depuis Access et j'insére mes données dans Excel.
Je place mes données en A11 par exemple et imaginons que
mes données vont de A11 à R51. A chaque fois, dans ma
colonne A au dernier enregistrements il ne m'insére pas
les données mais le numéro de la ligne c'est à dire dans
ce cas 51. J'ai uniquement ce problème que dans une
cellule et dans la première colonne de mon dernier
enregistrement. Pourriez vous m'aider?.
Voici mon Code
Public Sub CopyFromRecordset()
Dim Db1 As Database
Dim Rs1 As Recordset, Nb As Long
Dim Sh As Worksheet, Rg As Range, Nl As Range
Dim Chemin As String, Fichier As String
'Cette variable te permet de déterminer
'le type de bordure désiré...
Dim bordure As MsoLineStyle
'efface le signe égal...et lorsque tu
'le remplace, tu auras la liste des
'constantes disponibles
bordure = msoLineSingle
'utilise une variable pour la feuille
'et la première cellule où seront copiées les
'données...Ceci permet à ta procédure de s'exécuter
'sans avoir à préselectionner la feuille....
Set Sh = Worksheets("Test")
With Sh
Set Rg = .Range("A10")
End With
'Définir le chemin de la base de données "ici en chemin
absolu et non relatif " à ouvrir
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path
& "GeneralReport.mdb")
'Définir la requête de la base de données à ouvrir
Set Rs1 = Db1.OpenRecordset("REPORT", dbOpenDynaset)
'Efface toutes les données se trouvant dans la plage
'de cellules devant recevoir les nouvelles données.
Rg.CurrentRegion.Clear
'Teste pour savoir si La table contient au moins 1
enregistrement
If Rs1.EOF = False Then
'Place dans une variable Nb le nombre
'champs que contient le recordset
Nb = Rs1.Fields.Count - 1
'Boucle pour inscrire le nom des champs dans
'la première ligne de ta plage de cellule
'Rg représente la première cellule...
For a = 0 To Nb
Rg(, 1 + a) = Rs1.Fields(a).Name
Next
'Met en gras, le texte de la ligne de titres...
Rg.Resize(, Nb + 1).Font.Bold = True
Rg.Resize(, Nb + 1).Interior.ColorIndex = 15
'copie les données du recordset vers la feuille...
Rg.Offset(1).CopyFromRecordset Rs1
....
Merci de votre aide.
Anthony
.
-----Message d'origine-----
Bonjour Anthony,
En principe, ta procédure devrait fonctionner. Tu dois
regarder du côté de ta base de données Access.
Est-ce qu'il y a des enregistrements vides dans ta table ?
Est-ce que le nombre d'enregistrements importés est
exact ?
Le champ 1 de ta table correspondant à la colonne A dans
excel contient quel type de données ?
Et si tu ne trouves pas et que l'informations contenues
dans ta table ne sont pas "secrètes", tu peux me l'envoyer
bal perso. (Seulement cette table que tu copies vers une
nouvelle base de données vierges.)
Salutations!
"Anthony" a écrit
dans le message de
news:099401c3a12f$4831e470$
Bonjour,
J'ai un problème dans un recordset. Je récupére des
données depuis Access et j'insére mes données dans Excel.
Je place mes données en A11 par exemple et imaginons que
mes données vont de A11 à R51. A chaque fois, dans ma
colonne A au dernier enregistrements il ne m'insére pas
les données mais le numéro de la ligne c'est à dire dans
ce cas 51. J'ai uniquement ce problème que dans une
cellule et dans la première colonne de mon dernier
enregistrement. Pourriez vous m'aider?.
Voici mon Code
Public Sub CopyFromRecordset()
Dim Db1 As Database
Dim Rs1 As Recordset, Nb As Long
Dim Sh As Worksheet, Rg As Range, Nl As Range
Dim Chemin As String, Fichier As String
'Cette variable te permet de déterminer
'le type de bordure désiré...
Dim bordure As MsoLineStyle
'efface le signe égal...et lorsque tu
'le remplace, tu auras la liste des
'constantes disponibles
bordure = msoLineSingle
'utilise une variable pour la feuille
'et la première cellule où seront copiées les
'données...Ceci permet à ta procédure de s'exécuter
'sans avoir à préselectionner la feuille....
Set Sh = Worksheets("Test")
With Sh
Set Rg = .Range("A10")
End With
'Définir le chemin de la base de données "ici en chemin
absolu et non relatif " à ouvrir
Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path
& "GeneralReport.mdb")
'Définir la requête de la base de données à ouvrir
Set Rs1 = Db1.OpenRecordset("REPORT", dbOpenDynaset)
'Efface toutes les données se trouvant dans la plage
'de cellules devant recevoir les nouvelles données.
Rg.CurrentRegion.Clear
'Teste pour savoir si La table contient au moins 1
enregistrement
If Rs1.EOF = False Then
'Place dans une variable Nb le nombre
'champs que contient le recordset
Nb = Rs1.Fields.Count - 1
'Boucle pour inscrire le nom des champs dans
'la première ligne de ta plage de cellule
'Rg représente la première cellule...
For a = 0 To Nb
Rg(, 1 + a) = Rs1.Fields(a).Name
Next
'Met en gras, le texte de la ligne de titres...
Rg.Resize(, Nb + 1).Font.Bold = True
Rg.Resize(, Nb + 1).Interior.ColorIndex = 15
'copie les données du recordset vers la feuille...
Rg.Offset(1).CopyFromRecordset Rs1
....
Merci de votre aide.
Anthony
.