kido87
Messages postés39Date d'inscriptionlundi 21 mai 2007StatutMembreDernière intervention29 juin 2007
-
19 juin 2007 à 08:46
kido87
Messages postés39Date d'inscriptionlundi 21 mai 2007StatutMembreDernière intervention29 juin 2007
-
29 juin 2007 à 16:12
Bonjours à tous, je suis nouveau et pas tres expérimenté en VBA.... Je suis actuellement en stage et on ma demandé de faire un petit code d'importation/convertion Excel vers Acess.
Je vous mon tre mon code:
Sub Cmd_Importation_Click()
On Error GoTo err
Dim Num_agent As Integer 'AutoIncrement(pas de numéro d'agent)
Dim Nom_agent As String 'Nom de l'agent
Dim Num_projet As Integer 'AutoIncrement (pas de numéro de projet)
Dim Semaine_realisation As String 'numéro de la semaine de réalisation
Dim Metier As String 'Métier
Dim Projet As String 'Nom du projet
Dim Description As String 'description de l'activité réalisée
Dim Tache As String 'Avancement (en pourcentage ou terminé)
Dim Temps_passe As Integer 'Temps_passé sur le projet (en h)
Dim SQL As String 'Variable qui permet de créer une table
Dim Text1 As String 'Variable qui va contenir le nom du fichier à importer
Dim Text2 As String 'Variable qui va contenir l'emplacement du fichier à importer
Dim Text3 As String 'Variable qui va contenir le nom de la table d'importation n°1
Dim Text4 As String 'Variable qui va contenir le nom de la table d'importation n°2
Dim NomFic As String 'Nom du fichier à importer
Dim Pathfic As String 'Emplacement du fichier à importer
Dim NomTable As String 'Nom de la table d'importation n°1
Dim NomTable2 As String 'Nom de la table d'importation n°2
Dim j As String 'Compteur
Dim xls As Excel.Application 'Excel
Dim Rsg As String 'Renseignement de la boite de dialogue, rentré par l'utilisateur
Dim NomDuFichier 'Nom du fichier à importer (insertion des cellule Excel)
NomDuFichier = InputBox("Entrez le nom du fichier à importer ")
If (NomDuFichier <> "") Then
MsgBox NomDuFichier
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
Set Dbs CurrentDb 'CurrentDb> Suivi_activites
Set NomDuFichier = CreateObject("Excel.application")
'Initialisation du fichier a Importer
Rsg = NomDuFichier
Text1 = Rsg
ClasseurXLS = Rsg
If (Text1 <> "") Then
NomFic = Text1
NomFic = NomFic & ".xls"
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Initialisation Emplacement à importer
Rsg = InputBox("Entrez l'emplacement à importer : ")
If (Rsg <> "") Then
MsgBox Rsg
End If
Text2 = Rsg
If (Text2 <> "") Then
Pathfic = Text2
Else
réponse = MsgBox("Emplacement du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Initialisation Nom de la table d'importation n°1
Text3 = "Projets"
If (Text3 <> "") Then
NomTable = Text3
Else
réponse = MsgBox("Nom de la table d'importation manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Initialisation Nom de la table d'importation n°2
Text4 = "Agents"
If (Text4 <> "") Then
NomTable2 = Text4
Else
réponse = MsgBox("Nom de la table d'importation n°2 manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Ouverture du classeur d'Importation
NomDuFichier.Workbooks.Open Pathfic & NomFic
MsgBox ("Le classeur d'importation est ouvert")
kido87
Messages postés39Date d'inscriptionlundi 21 mai 2007StatutMembreDernière intervention29 juin 2007 19 juin 2007 à 15:02
Et oui tu avais raison j'ai fais ce que tu m'a dit et effectivement je voi mon erreur:
Erreur d'execution'429':
Un composant ActiveX ne peut pas creer d'objet
kido87
Messages postés39Date d'inscriptionlundi 21 mai 2007StatutMembreDernière intervention29 juin 2007 19 juin 2007 à 15:21
Je ne peux pas t'envoyer la base, je bosse pour une mairie et sur cette bas il ya des choses personnelles concernant les activités de la mairie et des agents.
Je peux par contre t'envoyer le code ainsi qu'un exemple de feuille Excel que je dois importer
ok?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 09:35
Salut,
Et bien a partir de ma boite a outils (là ou tu peux selectionner un TextBox ou Bouton, ...) tu as une option autre controle: cherche alors dans la liste Microsoft Common Dialog Control version 6.0
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 juin 2007 à 10:12
Salut,
Alors la je suis désolé ca me dépasse...
LE code que tu m'a envoyé (dans le module importation) marche Nickel chez moi....
(hors mis le fait que qu'il y a un End SUb en trop à la fin mais ce n'est en rien la cause)...
Essaie peu être ainsi (mais je ne suis pas sur que cela change qqch)
Dim CDialog As Object
Set CDialog = CreateObject("MSComDlg.CommonDialog")
'Répertoire d'ouverture
CDialog.InitDir = "C:\"
'Filtre sur les Classeur Excel
CDialog.Filter = "*.xls Classeur Excel|*.xls"
'Montre la boite de dialogue ouverture de fichier
Call CDialog.ShowOpen
'Récupère le chemin et le nom choisi
NomDuFichier = CDialog.FileName
, ----
[code.aspx?ID=41455 By Renfield]
kido87
Messages postés39Date d'inscriptionlundi 21 mai 2007StatutMembreDernière intervention29 juin 2007 20 juin 2007 à 10:26
Oui je viens de voir le End Sub.
Ben j'ai essayé ta méthode mais c'est toujours la même erreur... Je vais essayer de changer de machine peut etre lol, en tout cas merci de ton aide!!
par contre.... lol au niveau de la récupération des données, as-tu pu voir si ma méthode était bonne et sinon tu peux, avec le fichier excel que je t'ai passé me donner ton avis sur ce qu'il faudrais faire. (si tu a le temps lol)
kido87
Messages postés39Date d'inscriptionlundi 21 mai 2007StatutMembreDernière intervention29 juin 2007 21 juin 2007 à 09:52
Salut jrivet, j'espere que tu verra mon message lol.
J'en suis toujours au même point, je voulais juste avoir, à partir du fichier que je t'ai envoyé, ton avis sur la récupération de données, parce que je n'y arrive pas...
Ma partie de code étant:
j = 5 'on initialise j à 5 (Cellules vides avant la ligne 5)
With MaFeuilleDeDonnees
Do While Not IsEmpty(.Range("A" & CStr(j)))