A voir également:
- Travail sous access a partir d'excel
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Comment faire une recherche à partir d'une photo - Guide
5 réponses
Slt! j'ai fait ce que tu m'as di sen probleme!
En fait j'ai créer une table a partir d'un tableau excel en reprenant la 1ere ligne du table dans un champs, puis la 1ere colonne ds un autre champs et enfin l'interieur de mon tableau dans un dernier champs. Dans un formulaire, je peut remplir c 3 champs et les infos entrées seront stockées dans ma table.
Le probleme est que je veux créer un bouton qui me permette de recréer un tableau sous excel en fontion des données de ma table.
J'ai trouver un code qui pourrait repondre a mes atente malheuresmen je ne comprends pas la fin...
Sub InitialiseExcel()
Dim xlApp, xlBook, xlRange As Variant 'Objets classeur
Dim xlWks, iRows, iCols, iRotate As Variant 'Objets feuille
Dim FichierXL As String
Dim Boucle, Cmpt As Integer
'
FichierXL = "C:\MonFichier.xls"
'Création de l'objet Excel (main mise sur !)
Set xlApp = CreateObject("Excel.Application")
'Création de l'objet [Fichier Excel]
Set xlBook = xlApp.Workbooks.Open(FichierXL)
'Création de l'objet [Feuille] du classeur Excel.
Set xlWks = xlBook.Worksheets(1)
'Création de la plage permise dans la feuille Excel.
Set xlRange = xlWks.Range("A1:A65535")
(A partir de la je ne comprend plus)
DoCmd.GoToRecord , , acLast
Cmpt = Forms![MonFormulaire].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(Boucle, 1).Value = Forms![MonFormulaire].[Champs1]
xlRange.Cells(Boucle, 2).Value = Forms![MonFormulaire].[Champs2]
xlRange.Cells(Boucle, 3).Value = Forms![MonFormulaire].[Champs3]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
xlApp.Visible = True
xlWks.Activate
xlRange.Cells(1, 1).Select
xlApp.DisplayAlerts = False
xlBook.SaveAs FichierXL
xlApp.Quit
xlApp.DisplayAlerts = True
Set xlRange = Nothing
Set xlWks = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
MsgBox "Fin du travail"
End Sub
Mes 3 champs se nomment : zones, semaines et TAF ; ma table DonneesPreventives et mon formulaire Formulaire1
Quesque tu pense de ce code? Si tu le comprends merci de me lexpliquer..
Mici bcq de ton aide a+
En fait j'ai créer une table a partir d'un tableau excel en reprenant la 1ere ligne du table dans un champs, puis la 1ere colonne ds un autre champs et enfin l'interieur de mon tableau dans un dernier champs. Dans un formulaire, je peut remplir c 3 champs et les infos entrées seront stockées dans ma table.
Le probleme est que je veux créer un bouton qui me permette de recréer un tableau sous excel en fontion des données de ma table.
J'ai trouver un code qui pourrait repondre a mes atente malheuresmen je ne comprends pas la fin...
Sub InitialiseExcel()
Dim xlApp, xlBook, xlRange As Variant 'Objets classeur
Dim xlWks, iRows, iCols, iRotate As Variant 'Objets feuille
Dim FichierXL As String
Dim Boucle, Cmpt As Integer
'
FichierXL = "C:\MonFichier.xls"
'Création de l'objet Excel (main mise sur !)
Set xlApp = CreateObject("Excel.Application")
'Création de l'objet [Fichier Excel]
Set xlBook = xlApp.Workbooks.Open(FichierXL)
'Création de l'objet [Feuille] du classeur Excel.
Set xlWks = xlBook.Worksheets(1)
'Création de la plage permise dans la feuille Excel.
Set xlRange = xlWks.Range("A1:A65535")
(A partir de la je ne comprend plus)
DoCmd.GoToRecord , , acLast
Cmpt = Forms![MonFormulaire].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(Boucle, 1).Value = Forms![MonFormulaire].[Champs1]
xlRange.Cells(Boucle, 2).Value = Forms![MonFormulaire].[Champs2]
xlRange.Cells(Boucle, 3).Value = Forms![MonFormulaire].[Champs3]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
xlApp.Visible = True
xlWks.Activate
xlRange.Cells(1, 1).Select
xlApp.DisplayAlerts = False
xlBook.SaveAs FichierXL
xlApp.Quit
xlApp.DisplayAlerts = True
Set xlRange = Nothing
Set xlWks = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
MsgBox "Fin du travail"
End Sub
Mes 3 champs se nomment : zones, semaines et TAF ; ma table DonneesPreventives et mon formulaire Formulaire1
Quesque tu pense de ce code? Si tu le comprends merci de me lexpliquer..
Mici bcq de ton aide a+
Bonsoir Jack,
Première étape :
ouvrir ACCESS et créer une base ACCESS vierge
Ensuite activer Fichier/données externes/Lier les tables/ et indiquer le fichier Excel dont il est question dans vos différents
messages sur CCM.
Ensuite on en reparle
arbaretier.jeanjacques@wanadoo.fr
Cordialement
Première étape :
ouvrir ACCESS et créer une base ACCESS vierge
Ensuite activer Fichier/données externes/Lier les tables/ et indiquer le fichier Excel dont il est question dans vos différents
messages sur CCM.
Ensuite on en reparle
arbaretier.jeanjacques@wanadoo.fr
Cordialement
Bonjour Jack,
Merci pour tes éclaircissements,
Toutefois j'ajoute que tu peux parfaitement lier une sous-feuille Excel en qualité de table liée dans ACCESS.
Avantage :
Ta feuille Excel de référence, et sa sous-feuille, sont tenues à jour au fil de l'eau, au gré des mises à jour effectuées dans ACCESS.
Et donc, Dans ce cas, les informations affichées à l'ouverture de EXCEL, sont toujours les plus récentes.
A+
La science consiste à trouver ce qui existe depuis toujours ....
Hubert Reeves
Merci pour tes éclaircissements,
Toutefois j'ajoute que tu peux parfaitement lier une sous-feuille Excel en qualité de table liée dans ACCESS.
Avantage :
Ta feuille Excel de référence, et sa sous-feuille, sont tenues à jour au fil de l'eau, au gré des mises à jour effectuées dans ACCESS.
Et donc, Dans ce cas, les informations affichées à l'ouverture de EXCEL, sont toujours les plus récentes.
A+
La science consiste à trouver ce qui existe depuis toujours ....
Hubert Reeves
Merci je savé pas je v essayer...
Sinon tu ti coné en vba? (moi pa tro)
j'ai un code pour automatiser la création dun tableau sous excel grace a un bouton.
Mais je n'arrive pas a faire en sorte dans mon tableau que le champs1 constitue la 1ere ligne; le champs2 la 1ere colone et le champs 3 le reste des données... c faisable tu crois?
Sinon j'arrive pas non plus a laisser le fichier excel ouvert (quand je clic sur le bouton le tableau se crée ds excel mé le fichier se referme sito apres) ; cela sa doit etre pa tro dur a faire...(mé pa pr moi car jsui nul en vba lol)
Option Compare Database
Option Explicit
Option Private Module
'
Sub InitialiseExcel()
Dim xlApp, xlBook, xlRange As Variant 'Objets classeur
Dim xlWks, iRows, iCols, iRotate As Variant 'Objets feuille
Dim FichierXL As String
Dim Boucle, Cmpt As Integer
'
FichierXL = "C:\WINDOWS\Bureau\Maintenance\PréventifMill1bis2.xls"
'Création de l'objet Excel (main mise sur !)
Set xlApp = CreateObject("Excel.Application")
'Création de l'objet [Fichier Excel]
Set xlBook = xlApp.Workbooks.Open(FichierXL)
'Création de l'objet [Feuille] du classeur Excel.
xlApp.ActiveWorkbook.Worksheets.Add
Set xlWks = xlBook.ActiveSheet
'Création de la plage permise dans la feuille Excel.
Set xlRange = xlWks.Range("A1:A65535")
DoCmd.GoToRecord , , acLast
Cmpt = Forms![MonFormulaire].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(Boucle, 1).Value = Forms![MonFormulaire].[Champs1]
xlRange.Cells(Boucle, 2).Value = Forms![MonFormulaire].[Champs2]
xlRange.Cells(Boucle, 3).Value = Forms![MonFormulaire].[Champs3]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
xlApp.Visible = True
xlWks.Activate
xlRange.Cells(1, 1).Select
xlApp.DisplayAlerts = False
xlBook.SaveAs FichierXL
xlApp.Quit
xlApp.DisplayAlerts = True
Set xlRange = Nothing
Set xlWks = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
MsgBox "Tableau créé"
End Sub
Quesque t'en pense? tu peux m'aider?
Mici d'avance de ton aide a+
Sinon tu ti coné en vba? (moi pa tro)
j'ai un code pour automatiser la création dun tableau sous excel grace a un bouton.
Mais je n'arrive pas a faire en sorte dans mon tableau que le champs1 constitue la 1ere ligne; le champs2 la 1ere colone et le champs 3 le reste des données... c faisable tu crois?
Sinon j'arrive pas non plus a laisser le fichier excel ouvert (quand je clic sur le bouton le tableau se crée ds excel mé le fichier se referme sito apres) ; cela sa doit etre pa tro dur a faire...(mé pa pr moi car jsui nul en vba lol)
Option Compare Database
Option Explicit
Option Private Module
'
Sub InitialiseExcel()
Dim xlApp, xlBook, xlRange As Variant 'Objets classeur
Dim xlWks, iRows, iCols, iRotate As Variant 'Objets feuille
Dim FichierXL As String
Dim Boucle, Cmpt As Integer
'
FichierXL = "C:\WINDOWS\Bureau\Maintenance\PréventifMill1bis2.xls"
'Création de l'objet Excel (main mise sur !)
Set xlApp = CreateObject("Excel.Application")
'Création de l'objet [Fichier Excel]
Set xlBook = xlApp.Workbooks.Open(FichierXL)
'Création de l'objet [Feuille] du classeur Excel.
xlApp.ActiveWorkbook.Worksheets.Add
Set xlWks = xlBook.ActiveSheet
'Création de la plage permise dans la feuille Excel.
Set xlRange = xlWks.Range("A1:A65535")
DoCmd.GoToRecord , , acLast
Cmpt = Forms![MonFormulaire].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(Boucle, 1).Value = Forms![MonFormulaire].[Champs1]
xlRange.Cells(Boucle, 2).Value = Forms![MonFormulaire].[Champs2]
xlRange.Cells(Boucle, 3).Value = Forms![MonFormulaire].[Champs3]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
xlApp.Visible = True
xlWks.Activate
xlRange.Cells(1, 1).Select
xlApp.DisplayAlerts = False
xlBook.SaveAs FichierXL
xlApp.Quit
xlApp.DisplayAlerts = True
Set xlRange = Nothing
Set xlWks = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
MsgBox "Tableau créé"
End Sub
Quesque t'en pense? tu peux m'aider?
Mici d'avance de ton aide a+
Jack,
1/ La réponse tient en un mot : oui
2/ Notion de table attachée : Le fait de lier une feuille EXCEL dans une base ACCESS, ne fait pas disparaître le fichier EXCEL de l'endroit où il se trouve.
Autrement dit : Une modification effectuée dans la table liée sous ACCESS est aussitôt mise à jour simultanément sous ACCESS et Excel.
En conséquence, il est inutile de faire un un transfert ACCESS -> EXCEL puisque le fichier est commun à ACCESS et EXCEL.
* Je m'absente juqu'à 16 h
A+
La science ne fait que trouver ce qui existe depuis toujours
Hubert REEVES
1/ La réponse tient en un mot : oui
2/ Notion de table attachée : Le fait de lier une feuille EXCEL dans une base ACCESS, ne fait pas disparaître le fichier EXCEL de l'endroit où il se trouve.
Autrement dit : Une modification effectuée dans la table liée sous ACCESS est aussitôt mise à jour simultanément sous ACCESS et Excel.
En conséquence, il est inutile de faire un un transfert ACCESS -> EXCEL puisque le fichier est commun à ACCESS et EXCEL.
* Je m'absente juqu'à 16 h
A+
La science ne fait que trouver ce qui existe depuis toujours
Hubert REEVES
Merci ca marche jvien de lessayer!
Mais est ce possible de modifier ou rajouter d données dans cete table liée (et donc dans le fichier excel) grace a d formulaires ?
(je voudrais découper le tableau excel en différent formulaire pour une meilleur interface et compréhension pour les utilisateur de ma base access)
Mici a+
Mais est ce possible de modifier ou rajouter d données dans cete table liée (et donc dans le fichier excel) grace a d formulaires ?
(je voudrais découper le tableau excel en différent formulaire pour une meilleur interface et compréhension pour les utilisateur de ma base access)
Mici a+
ARBARETIER Jean-Jacques
Messages postés
9
Date d'inscription
dimanche 14 août 2005
Statut
Membre
Dernière intervention
24 mars 2008
17 août 2005 à 13:17
17 août 2005 à 13:17
Jack,
Hélas, non, je ne suis pas un champion du VBA.
Pourtant j'arrive toujours à mes fins, mais pas forcément par le chemin le plus carré (si l'on peut dire). Donc je m'abstiens de te donner des conseils dans ce domaine.
Voici tout de même le site où je trouve, pour ainsi dire toujours , mon bonheur : Aussi bien en VBA, ACCESS, EXCEL etc...
http://access.developpez.com/
Quant à ton souci dans la disposition des champs du tableau, je t'invite à utiliser (sous ACCESS) la fonction tableau croisé ...
1/Activer l'onglet Formulaires
2/ Sélectionner : Assistant tableau croisé dynamique
3/ Suivre la procédure pas à pas
Cela devrait te permettre d'avancer...
A+
Hélas, non, je ne suis pas un champion du VBA.
Pourtant j'arrive toujours à mes fins, mais pas forcément par le chemin le plus carré (si l'on peut dire). Donc je m'abstiens de te donner des conseils dans ce domaine.
Voici tout de même le site où je trouve, pour ainsi dire toujours , mon bonheur : Aussi bien en VBA, ACCESS, EXCEL etc...
http://access.developpez.com/
Quant à ton souci dans la disposition des champs du tableau, je t'invite à utiliser (sous ACCESS) la fonction tableau croisé ...
1/Activer l'onglet Formulaires
2/ Sélectionner : Assistant tableau croisé dynamique
3/ Suivre la procédure pas à pas
Cela devrait te permettre d'avancer...
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
16 août 2005 à 13:57
de déclarer le tableau excel comme une table lièe
16 août 2005 à 14:19
16 août 2005 à 15:10
Désolé Jack, Je n'arrive pas à suivre ta pensée...
1/ Le code me paraît plausible (à vérifier en pratique)
2/ Mais quel est l'intérêt de transférer vers un fichier Excel des informations qui sont déjà dans un fichier-attaché Excel ?
En effet, actuellement, tu peux indifféremment modifier les mêmes informations simultanément sous les 2 Applications; Excel et ACCESS..
Car ces deux Applications se communiquent réciproquement leurs mises à jour respectives dans ce même fichier.
Mais j'ai peut-etre mal compris ?
A+
16 août 2005 à 15:30
L'utilité de transférer les données de la table (remplie par les utilisateur) est pour le responsable un moyen de comparer les 2 tableaux (initial et réel) pour qu'il puisse voir sil i a u d retard pour différent travaux ou si le planning initial est en phase avec le travail d technicien...
Je fais cela sous access dans un soucis de userfriendly! (le programme que je fais sous access servira a simplifier la vie du secteur maintenance)
Ca va j'ai été assez clair tu as compris?
Keske ten pense? pourquoi le code ne marche pa?
Mici de ton aide!!
16 août 2005 à 15:34
Pour créer un formulaire :
Actionner la touche F11
Formulaires/Nouveau/Formulaire instantané : Tableau/
Désigner la table qui contient les informations à traiter
Valider, et c'est fini (ou presque)
A+