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

Boite de Dialogue - Ouverture Fichier

3 réponses
Avatar
Calou
Bonjour,

Voilà ce qui m'amène : Avec beaucoup de difficultés et beaucoup d'aide
(merci Gérard !), j'ai réussi une petite application. Elle va lire un
fichier CSV où je récupère le Matricule et le Nom. Mon soucis maintenant
c'est que le chemin du fichier en question est en dur dans la macro et que
je dois le changer à chaque fois.

J'ai trouvé un élément de réponse. Sur le site de Jacques BOISGONTIER voilà
ma découverte :

Private Sub CommandButton1_Click()
Choisir_Fichier
End Sub
Sub Choisir_Fichier()
nf = Application.GetOpenFilename("Fichiers CSV,*.csv")
If Not nf = False Then
Workbooks.Open Filename:=nf
End If
End Sub



Mais comment faire pour l'adapter dans ma procédure :

Sub LectureFichier()
f = "E:\Philippe\CG63\Atelier\Prime Annuelle 2009\TITUTEST.txt"
Ligne = 1
lg = 2
Passage = 0
Matricule1 = ""
Compteur = 0
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
PosMat = InStr(Chaine, ";")
Matricule = Mid(Chaine, 1, PosMat - 1)
PosNom = InStr(PosMat + 1, Chaine, ";")
NomPrenom = Mid(Chaine, PosMat + 1, PosNom - PosMat - 1)
If Matricule <> Matricule1 Then
Matricule1 = Matricule
Cells(lg, 1) = Matricule
Cells(lg, 2) = NomPrenom
Compteur = Compteur + 1
lg = lg + 1
Else
Compteur = Compteur + 1
End If
Wend
Close
End Sub

Sachant que j'ai une autre procédure qui commence ainsi :
Sub Remplissage()
f = "E:\Philippe\CG63\Atelier\Prime Annuelle 2009\TITUTEST.txt"
Ligne = 1
lg = 2
NomPrenom1 = ""
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
...

Avez vous une idée ??

Un grand merci pour votre précieuse aide.

Bonne soirée.

Philippe

3 réponses

Avatar
Philippe.R
Bonsoir,
Essaye ainsi :

f = Application.GetOpenFilename("Fichiers CSV,*.csv")
'la suite de tes initialisations de paramètres
If Not f = False Then
Open f For Input As 1
'et la suite de ta macro
endif
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Calou" a écrit dans le message de
news:
Bonjour,

Voilà ce qui m'amène : Avec beaucoup de difficultés et beaucoup d'aide
(merci Gérard !), j'ai réussi une petite application. Elle va lire un
fichier CSV où je récupère le Matricule et le Nom. Mon soucis maintenant
c'est que le chemin du fichier en question est en dur dans la macro et que
je dois le changer à chaque fois.

J'ai trouvé un élément de réponse. Sur le site de Jacques BOISGONTIER
voilà ma découverte :

Private Sub CommandButton1_Click()
Choisir_Fichier
End Sub
Sub Choisir_Fichier()
nf = Application.GetOpenFilename("Fichiers CSV,*.csv")
If Not nf = False Then
Workbooks.Open Filename:=nf
End If
End Sub



Mais comment faire pour l'adapter dans ma procédure :

Sub LectureFichier()
f = "E:PhilippeCG63AtelierPrime Annuelle 2009TITUTEST.txt"
Ligne = 1
lg = 2
Passage = 0
Matricule1 = ""
Compteur = 0
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
PosMat = InStr(Chaine, ";")
Matricule = Mid(Chaine, 1, PosMat - 1)
PosNom = InStr(PosMat + 1, Chaine, ";")
NomPrenom = Mid(Chaine, PosMat + 1, PosNom - PosMat - 1)
If Matricule <> Matricule1 Then
Matricule1 = Matricule
Cells(lg, 1) = Matricule
Cells(lg, 2) = NomPrenom
Compteur = Compteur + 1
lg = lg + 1
Else
Compteur = Compteur + 1
End If
Wend
Close
End Sub

Sachant que j'ai une autre procédure qui commence ainsi :
Sub Remplissage()
f = "E:PhilippeCG63AtelierPrime Annuelle 2009TITUTEST.txt"
Ligne = 1
lg = 2
NomPrenom1 = ""
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
...

Avez vous une idée ??

Un grand merci pour votre précieuse aide.

Bonne soirée.

Philippe



Avatar
Calou
Bonjour Philippe,

Un grand merci à toi pour ta réponse. Ca marche du tonnerre.
Par contre mon incompétence me rattrape vite car je ne sais pas comment
faire

J'ai plusieurs procédure qui s'enchainent et je pensais demander l'ouverture
du fichier une fois pour toute.
Il me met "Erreur de compilation - Attribut incorrect dans la procédure" au
niveau Public F as String

Sub TraitComplet()
Public F As String
F = Application.GetOpenFilename("Fichiers CSV,*.csv,Fichiers
Texte,*.txt")
LectureFichier
MsgBox "Traitement effectué !", vbOKOnly, "Lecture du Fichier"
CreationOnglet
MsgBox "Traitement effectué !", vbOKOnly, "Création des Onglets"
Remplissage
MsgBox "Traitement effectué !", vbOKOnly, "Alimentation des Fiches
Individuelles"
End Sub
Sub LectureFichier()
F = Application.GetOpenFilename("Fichiers CSV,*.csv,Fichiers Texte,*.txt")
Ligne = 1
lg = 2
Passage = 0
Matricule1 = ""
Compteur = 0
Open F For Input As 1
While Not EOF(1)
...
Sub Remplissage()
F = Application.GetOpenFilename("Fichiers CSV,*.csv,Fichiers Texte,*.txt")
Ligne = 1
lg = 2
NomPrenom1 = ""
Open F For Input As 1
While Not EOF(1)

Un grand merci pour votre aide.

Bonne journée

Philippe

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%
Bonsoir,
Essaye ainsi :

f = Application.GetOpenFilename("Fichiers CSV,*.csv")
'la suite de tes initialisations de paramètres
If Not f = False Then
Open f For Input As 1
'et la suite de ta macro
endif
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Calou" a écrit dans le message de
news:
Bonjour,

Voilà ce qui m'amène : Avec beaucoup de difficultés et beaucoup d'aide
(merci Gérard !), j'ai réussi une petite application. Elle va lire un
fichier CSV où je récupère le Matricule et le Nom. Mon soucis maintenant
c'est que le chemin du fichier en question est en dur dans la macro et
que je dois le changer à chaque fois.

J'ai trouvé un élément de réponse. Sur le site de Jacques BOISGONTIER
voilà ma découverte :

Private Sub CommandButton1_Click()
Choisir_Fichier
End Sub
Sub Choisir_Fichier()
nf = Application.GetOpenFilename("Fichiers CSV,*.csv")
If Not nf = False Then
Workbooks.Open Filename:=nf
End If
End Sub



Mais comment faire pour l'adapter dans ma procédure :

Sub LectureFichier()
f = "E:PhilippeCG63AtelierPrime Annuelle 2009TITUTEST.txt"
Ligne = 1
lg = 2
Passage = 0
Matricule1 = ""
Compteur = 0
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
PosMat = InStr(Chaine, ";")
Matricule = Mid(Chaine, 1, PosMat - 1)
PosNom = InStr(PosMat + 1, Chaine, ";")
NomPrenom = Mid(Chaine, PosMat + 1, PosNom - PosMat - 1)
If Matricule <> Matricule1 Then
Matricule1 = Matricule
Cells(lg, 1) = Matricule
Cells(lg, 2) = NomPrenom
Compteur = Compteur + 1
lg = lg + 1
Else
Compteur = Compteur + 1
End If
Wend
Close
End Sub

Sachant que j'ai une autre procédure qui commence ainsi :
Sub Remplissage()
f = "E:PhilippeCG63AtelierPrime Annuelle 2009TITUTEST.txt"
Ligne = 1
lg = 2
NomPrenom1 = ""
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
...

Avez vous une idée ??

Un grand merci pour votre précieuse aide.

Bonne soirée.

Philippe







Avatar
Philippe.R
Bonjour,
La déclaration public serait mieux en tête de module (en dehors de la
procédure)
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Calou" a écrit dans le message de
news:
Bonjour Philippe,

Un grand merci à toi pour ta réponse. Ca marche du tonnerre.
Par contre mon incompétence me rattrape vite car je ne sais pas comment
faire

J'ai plusieurs procédure qui s'enchainent et je pensais demander
l'ouverture du fichier une fois pour toute.
Il me met "Erreur de compilation - Attribut incorrect dans la procédure"
au niveau Public F as String

Sub TraitComplet()
Public F As String
F = Application.GetOpenFilename("Fichiers CSV,*.csv,Fichiers
Texte,*.txt")
LectureFichier
MsgBox "Traitement effectué !", vbOKOnly, "Lecture du Fichier"
CreationOnglet
MsgBox "Traitement effectué !", vbOKOnly, "Création des Onglets"
Remplissage
MsgBox "Traitement effectué !", vbOKOnly, "Alimentation des Fiches
Individuelles"
End Sub
Sub LectureFichier()
F = Application.GetOpenFilename("Fichiers CSV,*.csv,Fichiers Texte,*.txt")
Ligne = 1
lg = 2
Passage = 0
Matricule1 = ""
Compteur = 0
Open F For Input As 1
While Not EOF(1)
...
Sub Remplissage()
F = Application.GetOpenFilename("Fichiers CSV,*.csv,Fichiers Texte,*.txt")
Ligne = 1
lg = 2
NomPrenom1 = ""
Open F For Input As 1
While Not EOF(1)

Un grand merci pour votre aide.

Bonne journée

Philippe

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%
Bonsoir,
Essaye ainsi :

f = Application.GetOpenFilename("Fichiers CSV,*.csv")
'la suite de tes initialisations de paramètres
If Not f = False Then
Open f For Input As 1
'et la suite de ta macro
endif
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Calou" a écrit dans le message de
news:
Bonjour,

Voilà ce qui m'amène : Avec beaucoup de difficultés et beaucoup d'aide
(merci Gérard !), j'ai réussi une petite application. Elle va lire un
fichier CSV où je récupère le Matricule et le Nom. Mon soucis maintenant
c'est que le chemin du fichier en question est en dur dans la macro et
que je dois le changer à chaque fois.

J'ai trouvé un élément de réponse. Sur le site de Jacques BOISGONTIER
voilà ma découverte :

Private Sub CommandButton1_Click()
Choisir_Fichier
End Sub
Sub Choisir_Fichier()
nf = Application.GetOpenFilename("Fichiers CSV,*.csv")
If Not nf = False Then
Workbooks.Open Filename:=nf
End If
End Sub



Mais comment faire pour l'adapter dans ma procédure :

Sub LectureFichier()
f = "E:PhilippeCG63AtelierPrime Annuelle 2009TITUTEST.txt"
Ligne = 1
lg = 2
Passage = 0
Matricule1 = ""
Compteur = 0
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
PosMat = InStr(Chaine, ";")
Matricule = Mid(Chaine, 1, PosMat - 1)
PosNom = InStr(PosMat + 1, Chaine, ";")
NomPrenom = Mid(Chaine, PosMat + 1, PosNom - PosMat - 1)
If Matricule <> Matricule1 Then
Matricule1 = Matricule
Cells(lg, 1) = Matricule
Cells(lg, 2) = NomPrenom
Compteur = Compteur + 1
lg = lg + 1
Else
Compteur = Compteur + 1
End If
Wend
Close
End Sub

Sachant que j'ai une autre procédure qui commence ainsi :
Sub Remplissage()
f = "E:PhilippeCG63AtelierPrime Annuelle 2009TITUTEST.txt"
Ligne = 1
lg = 2
NomPrenom1 = ""
Open f For Input As 1
While Not EOF(1)
Line Input #1, Chaine
Chaine = Trim(Chaine)
...

Avez vous une idée ??

Un grand merci pour votre précieuse aide.

Bonne soirée.

Philippe