Image de excel à access
Résolu
fatiog
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
fatiog Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
fatiog Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de faire un logiciel dans le cadre de mon stage en entreprise, je suis étudiant.
J'ai un fichier access dans lequel je sélectionne un collaborateur,

par la suite, j'ouvre son fichier excel correspondant.

Dans ce fichier excel, je peux renseigner les informations sur les formations que le collaborateur a eu avec ses notes, mais je peux aussi sur une autre feuille remplir son futur plan de charge.

A partir de là, je peux cliquer sur le bouton de la feuille principale qui fera le lien avec ma bdd access pour mettre à jour les notes de ce collaborateur.
Mon vba va aussi faire une capture d'écran sur le plan de charge et l'enregistrer dans un fichier.
voici mon code:
Jusque là tout fonctionne.
Maintenant, on retourne dans access.
Je voudrais pouvoir afficher l'image enregistrée dans mon formulaire du début à la sélection de la personne (donc de la dernière liste déroulante) a côté.
Sachant donc qu'il faut afficher l'image du bon collaborateur.
Je n'arrive pas à trouver de code vba pouvant m'aider.
Si quelqu'un connait la solution à mon problème :)
Merci d'avance
Je suis en train de faire un logiciel dans le cadre de mon stage en entreprise, je suis étudiant.
J'ai un fichier access dans lequel je sélectionne un collaborateur,
par la suite, j'ouvre son fichier excel correspondant.
Dans ce fichier excel, je peux renseigner les informations sur les formations que le collaborateur a eu avec ses notes, mais je peux aussi sur une autre feuille remplir son futur plan de charge.
A partir de là, je peux cliquer sur le bouton de la feuille principale qui fera le lien avec ma bdd access pour mettre à jour les notes de ce collaborateur.
Mon vba va aussi faire une capture d'écran sur le plan de charge et l'enregistrer dans un fichier.
voici mon code:
Sub Bouton1_Cliquer()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, R As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=R:\Production\Rapport\Suivi formation\access\Formations.accdr"
Set rs = New ADODB.Recordset
Sheets("NePasToucher").Activate
cell_id = Range("A2").Value
'ici capture decran
Dim Gr As Object, Rg As Range, R1$, N$, C$, PathFich$
R1$ = "B1:F17"
Sheets("Plan d'action").Activate
N$ = ActiveSheet.Range("B1")
C$ = "R:\Production\Rapport\Suivi formation\access\image\" & cell_id & "_Boites.jpg"
Application.ScreenUpdating = False
PathFich$ = C$
Set Rg = ActiveSheet.Range(R1$): Rg.CopyPicture xlScreen, xlPicture: DoEvents
Set Gr = ActiveSheet.ChartObjects.Add(0, 0, Rg.Width, Rg.Height): DoEvents
Gr.Activate: ActiveChart.Paste: DoEvents
Gr.Chart.Export PathFich, "jpg": DoEvents
Application.ScreenUpdating = True
'requete sql
Sheets("Matrice").Activate
rs.Open "Boites where col_id= " & cell_id, cn, adOpenKeyset, adLockOptimistic, adCmdTable
R = 16
With rs
.Fields("process") = Range("H" & R).Value
.Fields("BE_1/2") = Range("I" & R).Value
.Fields("BE_3/4") = Range("J" & R).Value
.Fields("TOTAL") = Range("K" & R).Value
If (Range("M" & R).Value) <> " " Then
.Fields("depal_partie_generale") = Range("M" & R).Value
End If
If (Range("N" & R).Value) <> " " Then
.Fields("depal_navette_alvey") = Range("N" & R).Value
End If
If (Range("O" & R).Value) <> " " Then
.Fields("depal_partie_basse") = Range("O" & R).Value
End If
If (Range("P" & R).Value) <> " " Then
.Fields("depal_partie_haute") = Range("P" & R).Value
End If
If (Range("Q" & R).Value) <> " " Then
.Fields("depal_maintenance_1er_niveau") = Range("Q" & R).Value
End If
.Update
End With
rs.Close
Set rs = Nothing
Gr.Delete: Set Gr = Nothing
cn.Close
Set cn = Nothing
MsgBox "maj faite"
End Sub
Jusque là tout fonctionne.
Maintenant, on retourne dans access.
Je voudrais pouvoir afficher l'image enregistrée dans mon formulaire du début à la sélection de la personne (donc de la dernière liste déroulante) a côté.
Sachant donc qu'il faut afficher l'image du bon collaborateur.
Je n'arrive pas à trouver de code vba pouvant m'aider.
Si quelqu'un connait la solution à mon problème :)
Merci d'avance
A voir également:
- Image de excel à access
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Image iso - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
merci de préciser le langage (VBA est du basic) quand tu utilises les balises de code.
veux-tu simplement, dans du code VBA Access, retrouver le nom du fichier
si oui, il faudrait peut-être que tu nous expliques ce qu'est le champ col_id dans la table Boites.
merci de préciser le langage (VBA est du basic) quand tu utilises les balises de code.
veux-tu simplement, dans du code VBA Access, retrouver le nom du fichier
"R:\Production\Rapport\Suivi formation\access\image\" & cell_id & "_Boites.jpg"?
si oui, il faudrait peut-être que tu nous expliques ce qu'est le champ col_id dans la table Boites.
Bonjour,
Je fais bien du VBA
Le champ col_id est l'identifiant du collaborateur, c'est la clé de ma table collaborateur et il permet de faire le lien avec ma table Boites.
J'ai un champs caché dans mon formulaire access qui retrouve cette valeur.
Donc je ferais :
qui me retrouverai le fichier de l'image.
Mais maintenant, je n'arrive pas à faire l'affichage de cette image.
Merci
Je fais bien du VBA
Le champ col_id est l'identifiant du collaborateur, c'est la clé de ma table collaborateur et il permet de faire le lien avec ma table Boites.
J'ai un champs caché dans mon formulaire access qui retrouve cette valeur.
Donc je ferais :
"R:\Production\Rapport\Suivi formation\access\image" & Texte18.value & "_Boites.jpg"
qui me retrouverai le fichier de l'image.
Mais maintenant, je n'arrive pas à faire l'affichage de cette image.
Merci
c'est ce que j'ai fait pour l'exemple donné, mais je n'arrive pas à changer le chemin de l'image en vba (j'ai pris un sous-formulaire dans lequel j'ai mis un fond d'ecran, le tout fait à partir de l'onglet propriété donc sans vba), j'aurais toujours le même plan d'action dans ce cas ci donc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je viens de réussir !!
J'explique comment j'ai fait:
J'ai ajouté une ligne filecopy dans mon fichier excel pour renommer mon fichier en bmp, j'ai donc 2 images, une en jpg et l'autre en bmp.
Dans access, j'ai ajouté un bouton avec la propriété visible = false
et au changement sur ma dernière liste déroulante, j'ai mis le code suivant.
comme cela, mon bouton ne s'affichera que si mon collaborateur possède un plan de charge.
L'objectif est rempli mais le visuel est un peu différent que dans mes exigences.

Merci encore de ton temps
J'explique comment j'ai fait:
Dim Gr As Object, Rg As Range, R1$, N$, C$, D$, PathFich$ R1$ = "A3:F17" Sheets("Plan d'action").Activate N$ = ActiveSheet.Range("A3") C$ = "R:\Production\Rapport\Suivi formation\access\image\" & cell_id & "_Boites.jpg" Application.ScreenUpdating = False PathFich$ = C$ D$ = "R:\Production\Rapport\Suivi formation\access\image\" & cell_id & "_Boites.bmp" Set Rg = ActiveSheet.Range(R1$): Rg.CopyPicture xlScreen, xlPicture: DoEvents Set Gr = ActiveSheet.ChartObjects.Add(0, 0, Rg.Width, Rg.Height): DoEvents Gr.Activate: ActiveChart.Paste: DoEvents Gr.Chart.Export PathFich, "jpg": DoEvents FileCopy C$, D$ Application.ScreenUpdating = True
J'ai ajouté une ligne filecopy dans mon fichier excel pour renommer mon fichier en bmp, j'ai donc 2 images, une en jpg et l'autre en bmp.
Dans access, j'ai ajouté un bouton avec la propriété visible = false
et au changement sur ma dernière liste déroulante, j'ai mis le code suivant.
Private Sub Texte20_Change() Dim fic As String fic = "R:\Production\Rapport\Suivi formation\access\image\" & Texte18.Value & "_" & Texte20.Value & ".bmp" If Len(Dir(fic)) > 0 Then Commande63.Picture = fic Me.Commande63.Visible = True Else Me.Commande63.Visible = False End If End Sub
comme cela, mon bouton ne s'affichera que si mon collaborateur possède un plan de charge.
L'objectif est rempli mais le visuel est un peu différent que dans mes exigences.
Merci encore de ton temps