OVH Cloud OVH Cloud

Pour michdenis

2 réponses
Avatar
j0b
bonsoir, je voulais vous demandé si vous pouvez m envoyer un classeur qui illustre l exportation de donnée vers acces avec les 2 procédures que j ai de votre part. Merci d'avance ou si cela vous pose problème si vous pouvez associer les 2 procédure je pense que ca fera amplement l affaire. Merci

Sub AjouterDesEnregistrementsÀUneTable()

Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet

Set MyDB = OpenDatabase("C:\Mes documents\bd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")

With Sh
For Each r In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing

End Sub

Sub RechercherDataAccessPourExcel()

Dim MyRange As Range, C As Range, RgExport As Range
Dim db As Database
Dim RstTrouve As Recordset
Dim Chaine As String

Set db = OpenDatabase("C:\Lotus\Mes Documents\bd2.mdb")
Set RstTrouve = db.OpenRecordset("Etudiant", dbOpenDynaset)
RstTrouve.MoveLast
RstTrouve.MoveFirst

Set MyRange = Worksheets("Feuil1").Range("A1:A25")

For Each C In MyRange
Chaine = Trim(C.Value)
Application.EnableEvents = False
With RstTrouve
.MoveFirst
'Remplace NomEtudiant par le nom du champ
'de la clé primaire
.FindFirst "[NomEtudiant] = " & Chr(34) & Chaine & Chr(34)
If .NoMatch = False Then
'Si il trouve, tu masques la ligne
C.EntireRow.Hidden = True
End If
End With
Next

'Ajoute le code pour ne transférer que seulement les enregistrements
'dont les lignes sont visibles. Pour ce faire tu peux utiliser
'la méthode SpecialCells de l'objet Range
Set RgExport = MyRange.SpecialCells(xlCellTypeVisible)
'Applique ta procédure pour ajouter le range RgExport à
'ta table dans access.

'Et tu démasques les lignes dans ta plage de cellules.

Set C = Nothing: Set MyRange = Nothing: Set RgExport = Nothing
RstTrouve.Close: db.Close
Set RstTrouve = Nothing: Set db = Nothing
Application.EnableEvents = True
End If

End Sub

2 réponses

Avatar
michdenis
C'est peut être possible ! ... seulement à la fin de la journée, heure du Québec. En espérant que ton adresse perso. est
valide.


Salutations!




"j0b" a écrit dans le message de news:41583cfc$0$23957$
bonsoir, je voulais vous demandé si vous pouvez m envoyer un classeur qui illustre l exportation de donnée vers acces avec
les 2 procédures que j ai de votre part. Merci d'avance ou si cela vous pose problème si vous pouvez associer les 2 procédure
je pense que ca fera amplement l affaire. Merci

Sub AjouterDesEnregistrementsÀUneTable()

Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet

Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")

With Sh
For Each r In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing

End Sub

Sub RechercherDataAccessPourExcel()

Dim MyRange As Range, C As Range, RgExport As Range
Dim db As Database
Dim RstTrouve As Recordset
Dim Chaine As String

Set db = OpenDatabase("C:LotusMes Documentsbd2.mdb")
Set RstTrouve = db.OpenRecordset("Etudiant", dbOpenDynaset)
RstTrouve.MoveLast
RstTrouve.MoveFirst

Set MyRange = Worksheets("Feuil1").Range("A1:A25")

For Each C In MyRange
Chaine = Trim(C.Value)
Application.EnableEvents = False
With RstTrouve
.MoveFirst
'Remplace NomEtudiant par le nom du champ
'de la clé primaire
.FindFirst "[NomEtudiant] = " & Chr(34) & Chaine & Chr(34)
If .NoMatch = False Then
'Si il trouve, tu masques la ligne
C.EntireRow.Hidden = True
End If
End With
Next

'Ajoute le code pour ne transférer que seulement les enregistrements
'dont les lignes sont visibles. Pour ce faire tu peux utiliser
'la méthode SpecialCells de l'objet Range
Set RgExport = MyRange.SpecialCells(xlCellTypeVisible)
'Applique ta procédure pour ajouter le range RgExport à
'ta table dans access.

'Et tu démasques les lignes dans ta plage de cellules.

Set C = Nothing: Set MyRange = Nothing: Set RgExport = Nothing
RstTrouve.Close: db.Close
Set RstTrouve = Nothing: Set db = Nothing
Application.EnableEvents = True
End If

End Sub
Avatar
j0b
Voila utilisez cette adresse valide voila bonne journée à
vous pendant que je vais continuer ma soirée :) a bientôt
et merci



-----Message d'origine-----
C'est peut être possible ! ... seulement à la fin de la
journée, heure du Québec. En espérant que ton adresse

perso. est
valide.


Salutations!




"j0b" a écrit dans le message de
news:41583cfc$0$23957$

bonsoir, je voulais vous demandé si vous pouvez m envoyer
un classeur qui illustre l exportation de donnée vers acces

avec
les 2 procédures que j ai de votre part. Merci d'avance ou
si cela vous pose problème si vous pouvez associer les 2

procédure
je pense que ca fera amplement l affaire. Merci

Sub AjouterDesEnregistrementsÀUneTable()

Dim MyDB As Database, MyTable As Recordset, Sh As
Worksheet


Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")

With Sh
For Each r In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh =
Nothing


End Sub

Sub RechercherDataAccessPourExcel()

Dim MyRange As Range, C As Range, RgExport As Range
Dim db As Database
Dim RstTrouve As Recordset
Dim Chaine As String

Set db = OpenDatabase("C:LotusMes Documentsbd2.mdb")
Set RstTrouve = db.OpenRecordset("Etudiant",
dbOpenDynaset)

RstTrouve.MoveLast
RstTrouve.MoveFirst

Set MyRange = Worksheets("Feuil1").Range("A1:A25")

For Each C In MyRange
Chaine = Trim(C.Value)
Application.EnableEvents = False
With RstTrouve
.MoveFirst
'Remplace NomEtudiant par le nom du champ
'de la clé primaire
.FindFirst "[NomEtudiant] = " & Chr(34) & Chaine &
Chr(34)

If .NoMatch = False Then
'Si il trouve, tu masques la ligne
C.EntireRow.Hidden = True
End If
End With
Next

'Ajoute le code pour ne transférer que seulement les
enregistrements

'dont les lignes sont visibles. Pour ce faire tu peux
utiliser

'la méthode SpecialCells de l'objet Range
Set RgExport = MyRange.SpecialCells(xlCellTypeVisible)
'Applique ta procédure pour ajouter le range RgExport à
'ta table dans access.

'Et tu démasques les lignes dans ta plage de cellules.

Set C = Nothing: Set MyRange = Nothing: Set RgExport =
Nothing

RstTrouve.Close: db.Close
Set RstTrouve = Nothing: Set db = Nothing
Application.EnableEvents = True
End If

End Sub


.