Bonjour
j'utilise une application qui génère des fichier .txt
à partir d'une état voir image
le problème c'est que le fichier texte contient des lignes vides pas comme l’état
existe t'il une astuce pour l’éliminer
Bonjour
j'utilise une application qui génère des fichier .txt
à partir d'une état voir image
le problème c'est que le fichier texte contient des lignes vides pas comme l’état
existe t'il une astuce pour l’éliminer
Bonjour
Vu que tu as une requête qui alimente ton état, il serait préférable d'utiliser directement ta requête, pour cela regarde du coté dePhilippe
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransfertText ...
merci Philippe pour votre réponse
mais le problème c'est que le résultat afficher dans l’état est l'ensemble des deux requêtes
Requête1.txt pour la première ligne
et DETAIL.txt pour les enregistrements
tu peux voir les images pour mieux me comprendre
cordialement
Bonjour.
Si ça peut t'aider, voici la méthode que j'utilise pour supprimer les lignes vides dans un fichier .txt
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 ' Le code qui suit recherche et supprime les lignes vides du fichier texte Dim Enrgt As String Dim NomFichierOriginal Dim NomFichierResultat NomFichierOriginal= "C:\.......\TonFichier.txt" NomFichierResultat = "C:\.......\Resultat.txt" Open NomFichierOriginal For Input As #1 Open NomFichierResultat For Output As #2 While Not EOF(1) Input #1, Enrgt If Not Left(Enrgt, 1) = "" Then Print #2, Enrgt End If Wend Close #1 Close #2
N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
Plus haut monte le singe, plus il montre son cul (Montaigne)
Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.
je cherche une solution de telle façon
lorsque je click sur le bouton j'obtenir un fichier texte sans ligne vide
est ce que c'est possible
ci-joint la macro que j'utilise maintenant
cordialement
Si tu ne vois pas comment utiliser le code que j'ai posté, c'est que tu n'as jamais utilisé le VBA. Souhaites-tu que je t'explique comment utiliser ce code? Il faudra créer un module, y créer une fonction de suppression des lignes vides, et l'appeler à l'aide de ta macro. Est-ce que ça te convient si je t'explique comment faire "pas à pas"?
N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
Plus haut monte le singe, plus il montre son cul (Montaigne)
Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.
Merci bien RobiPMS
je suis débutant en VBA et j'aimerai bien que tu m'aide
je t'explique mieux mon besoin étape par étape :
1- je rempli la formulaire
2- je clic sur le bouton qui active le Macro 1
Macro 1 génère un fichier texte a partir d'une état VIREMENT (l’état comporte deux résultats de deux requête différents)
lorsque je clic sur le bouton une fenêtre windows s'ouvre qui me permet vérifier le chemin d'enregistrement et de modifier le nom de fichier texte par exemple "VIREMENT 23022013"
donc a travers votre code que tu a déjà me proposer j'ai remarqué que qu'il bien définir les noms des fichiers donc si je vais utiliser votre code risque de ne pas trouver le fichier défini dans le code VBA
comment faire !!!
j'ai essayé ce matin de réduire la hauteur des deux champs dans l’état virement (de 0,5 cm à 0,3 cm)
résultat obtenir 0 lignes vides entre les enregistrements sauf le premier ligne qui reste vide
Comment faire
karwafmhz bonjour,
Modifie ta ligne 14 de cette façon et fais moi un retour
JimBoLion
Code : Sélectionner tout - Visualiser dans une fenêtre à part If len(EnrGt)>2 and not isnull(EnrGt) Then
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
Bonjour jimbolion et karwafmhz.
Si cette solution te convient, karwafmhz, parfait. Sinon j'avais préparé une adaptation de mon code qui correspond à tes besoins.
Si tu en as besoin, dis-le et je la poste.
Cordialement.
N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
Plus haut monte le singe, plus il montre son cul (Montaigne)
Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.
Merci jimbolion pour votre reponse
j'attend votre réponse robiPMS
karwafmhz,
La modification ligne 14 n'a rien donné de satisfaisant ?
Bonne soirée
JimBoLion
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
OK.
On va commencer par créer un module, où l'on va définir une fonction permettant d'utiliser la boîte de dialogue "Enregistrer sous".
Pour faire ceci : Ruban -> Créer -> Module
Quand tu cliques sur Module, Access cré un Module1 et l'ouvre dans l'éditeur VBA.
Au dessus de Option Compare Database, tu colles ceci
Et en dessous tu colles ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Declare Function GetSaveFileName Lib "comdlg32.dll" _ Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) _ As Long ' Structure du fichier Private Type OPENFILENAME lStructSize As Long hWndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String Flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type
Ceci fait, tu disposes maintenant d'un fonction qui te permets d'utiliser selon tes besoins la boîte de dialogue Windows Enregistrer sous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Function EnregistrerUnFichier(Handle As Long, Titre As String, _ NomFichier As String, Chemin As String) As String ' EnregistrerUnFichier est la fonction à utiliser dans votre formulaire pour ouvrir _ la boîte de dialogue d'enregistrement d'un fichier. ' Explication des paramètres ' Handle = le handle de la fenêtre (Me.Hwnd) ' Titre = titre de la boîte de dialogue ' NomFichier = nom par défaut du fichier à enregistrer ' Chemin = chemin par défaut du fichier à enregistrer Dim structSave As OPENFILENAME With structSave .lStructSize = Len(structSave) .hWndOwner = Handle .nMaxFile = 255 .lpstrFile = NomFichier & String$(255 - Len(NomFichier), 0) .lpstrInitialDir = Chemin .lpstrFilter = "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0) ' Définition du filtre (aucun) .Flags = &H4 'Option de la boite de dialogue End With If (GetSaveFileName(structSave)) Then EnregistrerUnFichier = Mid$(structSave.lpstrFile, 1, InStr(1, structSave.lpstrFile, vbNullChar) - 1) End If End Function
Tout ceci est dans la faq http://access.developpez.com/faq/?pa...AffBoitEnregSs.
Fais déjà ceci et je poste la suite dans un petit moment.
N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
Plus haut monte le singe, plus il montre son cul (Montaigne)
Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.
Deuxième et dernière étape :
Tu vas remplacer ta macro par une procédure événementielle.
Pour cela, tu affiches les propriétés de ton bouton, onglet Evénement, Sur clic, tu effaces la macro et tu choisis à la place [Procédure événementielle]. Puis tu cliques sur le bouton avec ... au bout de la ligne à droite, et entre Private Sub Nom_du_bouton_Click() et End Sub, tu colles ceci :
Tu enregistres, et tu essaies...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Dim Msg As String, NomRepertBD As String NomRepertBD = CurrentProject.Path & "\" 'ParentDir(Application.CurrentDb.Name) ' récupération du chemin de l'application DoCmd.OutputTo acOutputReport, "VIREMENT", "MS-DOSText(*.txt)", NomRepertBD & "VIREMENT.txt", False, "", , acExportQualityPrint ' ceci est ce que faisait la macro Dim sEmplacementInitial As String, sTraitement As String, sEmplacementFinal As String ' déclaration des variables contenant les emplacements des fichiers texte original, traité et enregistré en final sEmplacementInitial = NomRepertBD & "VIREMENT.txt" sTraitement = NomRepertBD & "VIREMENTBis.txt" Dim Enrgt As String ' ce qui suit supprime toutes les lignes vides du fichier original Open sEmplacementInitial For Input As #1 Open sTraitement For Output As #2 While Not EOF(1) Input #1, Enrgt If Not Left(Enrgt, 1) = "" Then Print #2, Enrgt End If Wend Close #1 Close #2 Msg = "Voulez-vous sauvegarder le fichier sous un autre nom ou à un autre emplacement? " & vbCr & "Si c'est le cas, cliquez sur Oui. " _ & vbCr & vbCr & "Si vous cliquez sur Non le fichier sera sauvegardé à l'emplacement " & sTraitement ' Définit le message. Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons. Response = MsgBox(Msg, Style) If Response = vbYes Then ' L'utilisateur a choisi Oui. sEmplacementFinal = EnregistrerUnFichier(Me.hwnd, "", "VIREMENTBis.txt", NomRepertBD) If sEmplacementFinal = sTraitement Then 'cas où l'utilisateur ne choisit pas d'autre nom ou emplacement Exit Sub Else FileCopy sTraitement, sEmplacementFinal End If Else Exit Sub End If
N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
Plus haut monte le singe, plus il montre son cul (Montaigne)
Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.
1000000 MERCI robiPMS
ça marche très bien
cordialement
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager