Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Importer un fichier txt dans une table access en VBA depuis excel

2 réponses
Avatar
moumoute31
Bonjour,

Je ne trouve pas solution =E0 mon probl=E8me

Voila je souhaiterai cr=E9e une macro sous excel permettant de faire
ceci
L'endroit ou son mes fichiers
Sachant Donn=E9e.txt se trouve dans C:/Donn=E9e.txt
Ma base de donn=E9e se trouvee C:/traitement/BaseOK.mdb

Je voudrais importer le fichier texte dans ma BaseOK.mdb dans la table
Donnee
et une fois importer, il faut supprim=E9 la premi=E8re ligne

Est ce que quelqu'un aurait la solution =E0 mon probl=E8me ?

Merci d'avance

2 réponses

Avatar
Fabien
Bonjour,

Je ne trouve pas solution à mon problème

Voila je souhaiterai crée une macro sous excel permettant de faire
ceci
L'endroit ou son mes fichiers
Sachant Donnée.txt se trouve dans C:/Donnée.txt
Ma base de donnée se trouvee C:/traitement/BaseOK.mdb

Je voudrais importer le fichier texte dans ma BaseOK.mdb dans la table
Donnee
et une fois importer, il faut supprimé la première ligne

Est ce que quelqu'un aurait la solution à mon problème ?

Merci d'avance

Salut,

Voici déjà de quoi supprimmer la premiére ligne d'un fichier texte.
Option Compare Database

' D'aprés Fonction SupprimeLigneFichierTexte, par Jack,
http://www.vbfrance.com

' Cette fonction permet de supprimer une ligne d'un fichier texte.
' Paramètres à fournir : ---------------------------------------------
' FichierOriginal désigne le fichier (et son chemin) à traiter
' FichierFinal désigne le fichier résultat
' Nota : Si ce paramètre est vide, on remplacera l'original par
' la version modifiée
' NoOuTexte désigne soit :
' - un chiffre : On supprimera la xième ligne du fichier
' - un texte : On supprimera le texte partout où on le trouvera
' SensibleCase (optionnel uniquement si NoOuTexte est un texte) :
' - False = Insensible (par défaut), donc le texte sera comparé aussi
' bien en Mininuscules qu'en majuscule
' - True = Sensible : Seuls les textes correspondants exactement
seront
' supprimés
' Paramètre renvoyé : ------------------------------------------------
' -1 : Problème de fichier (inexistant ou écriture impossible)
' 0 : Aucune suppression n'a été faite
' 1...x : Il y a eu "x" suppressions

Public Function Efface_lignes(ByVal FichierOriginal As String,
Ligne_debut As Integer, ligne_fin As Integer) As Integer
Dim Ligne As String, Temp As String, ff1 As Integer, ff2 As Integer
Dim r As Long
Dim NoLigne As Long, NbRemplacements As Long, EstNumérique As Boolean
Dim I, J As Long
Dim vtemp As Variant
Dim Nom_Page As String

'J'initialise mes variables

'On Error GoTo Erreur

' Teste si le fichier original existe bien
If Dir(FichierOriginal) = "" Then
SupprimeLigneFichierTexte = -1
Exit Function
End If

' Ouvre le fichier original
ff1 = FreeFile ' Cherche un index disponible
Open FichierOriginal For Input As #ff1

' Supprime le fichier temporaire s'il existe
If Dir(Application.CurrentProject.Path & "~Temp~VBFrance.txt") <>
"" Then
Kill Application.CurrentProject.Path & "~Temp~VBFrance.txt"
End If
' Ouvre le fichier résultat. C'est un fichier intermédiaire.
ff2 = FreeFile ' Cherche un index disponible
Open Application.CurrentProject.Path & "~Temp~VBFrance.txt" For
Output As #ff2

' Boucle de lecture du fichier
NoLigne = 0 ' RaZ du compteur
Do While Not EOF(ff1)
' Lit une ligne
Line Input #ff1, Ligne
NoLigne = NoLigne + 1
If NoLigne < Ligne_debut Or NoLigne > ligne_fin Then
'--------------------------------------------------------
' On veut supprimer la xième ligne
Print #ff2, Ligne, Empty
Else
NbRemplacements = NbRemplacements + 1
End If
'--------------------------------------------------------

DoEvents
Loop ' Passe à la ligne suivante

' Voilà, on a parcouru tout le fichier
' Referme les fichiers
Close #ff1, #ff2

' On va maintenant regarder quoi faire du nouveau fichier
' On n'a pas préciser de fichier final
' On va donc remplacer l'original par notre nouveau fichier
If Dir(FichierOriginal) <> "" Then
Kill FichierOriginal ' Le If est inutile, là
End If
' Copie notre nouveau fichier à la place
FileCopy Application.CurrentProject.Path & "~Temp~VBFrance.txt",
FichierOriginal


' Avant de partir, on va supprimer notre fichier temporaire
If Dir(Application.CurrentProject.Path & "~Temp~VBFrance.txt") <>
"" Then
Kill Application.CurrentProject.Path & "~Temp~VBFrance.txt"
' Le If est inutile, là
End If

' C'est fini, on va renvoyer le nombre de remplacements effectués
SupprimeLigneFichierTexte = NbRemplacements
Exit Function

Erreur:
SupprimeLigneFichierTexte = -1
On Error Resume Next
Close #ff1, #ff2

End Function


L'import voir la commande: DoCmd.TransferText

Voilà...

Avatar
bonero
moumoute31 a écrit le 30/08/2007 à 17h01 :
Bonjour,

Je ne trouve pas solution à mon problème

Voila je souhaiterai crée une macro sous excel permettant de faire
ceci
L'endroit ou son mes fichiers
Sachant Donnée.txt se trouve dans C:/Donnée.txt
Ma base de donnée se trouvee C:/traitement/BaseOK.mdb

Je voudrais importer le fichier texte dans ma BaseOK.mdb dans la table
Donnee
et une fois importer, il faut supprimé la première ligne

Est ce que quelqu'un aurait la solution à mon problème ?

Merci d'avance


bonjour,
merci pour vos reponses. jai toujours cru que javais excel 2003 moi.que je suis nene .lol.
en fait je suis en train d apprendre le vba en ce moment avec un bouquin ( vba pour excel 2003).
j aimerais savoir si je RATE beaucoup de choses en ne m exercant pas directement sur excel2007 mais plutot sur mon excel2002?
Merci de me repondre.