Export d'une colonne dans un fichier texte
Bonjour,
Je travaille actuellement sur un générateur de script cisco et, je cherche à exporter à la fin de la configuration d'équipement, cette conf automatiquement sur le bureau dans un fichier texte nommé "nom_de_lequipement".txt
La moitié des tuto que j'ai trouvé sur internet (pas ceux du support office, par ce que ceux la me dise de le faire à la main :p) me parle de fichier csv delimité, que l'on peut transformé en txt.
En sachant que ma conf fait environ 400 lignes et que j'ai besoin de le retranscrire exactement de la manière dont il est affiché sous excel, est ce que vous auriez des pistes?
Merci
Bonjour
Peux-tu donner joindre un exemple concret avec document de départ et document souhaité ?
Bye !
Bonjour,
C'est très simple en fait. Sur une feuille de classeur, mes macro génère quelque chose du style :
interface GigabitEthernet1/0/9
description To -
switchport mode trunk
switchport nonegotiate
mls qos trust dscp
storm-control broadcast level 10.00
spanning-tree portfast disable
spanning-tree bpduguard disable
ip dhcp snooping trust
no shutdown
!
interface GigabitEthernet1/0/10
description To -
switchport mode trunk
switchport nonegotiate
mls qos trust dscp
storm-control broadcast level 10.00
spanning-tree portfast disable
spanning-tree bpduguard disable
ip dhcp snooping trust
no shutdownje souhaiterais simplement exporter ceci automatique à la fin de ma macro dans un txt sur le bureau.
Je suis désolé d'up le topic, mais j'ai vraiment besoin de votre aide
Bonjour,
Cette procédure va créer un fichier texte ou écraser un fichier déjà existant.
Il va y placer les données contenues dans la colonne D.
Adapte ce qu'il faut avant le lancement :
Sub test()
Dim Tb(), DLig As Long, num As Long, Chemin As String, NomFicTxt As String
'!!!!!!!!!!!! A ADAPTER !!!!!!!!!!!!!!!
Chemin = "C:\Users\NomUtilisateur\Desktop\"
NomFicTxt = "Test.txt"
DLig = Sheets("Feuil1").Range("D" & Rows.Count).End(xlUp).Row
Tb = Sheets("Feuil1").Range("D1:D" & DLig).Value
'!!!!!!!!FIN ADAPTATIONS !!!!!!!!!!!!!!!!
num = FreeFile
'Ouvre en écriture et écrase un fichier précédent du même nom
Open Chemin & NomFicTxt For Output As #num
'Boucle sur la liste des mots
For i = LBound(Tb) To UBound(Tb)
'Ecrit dans le fichier texte ligne par ligne
Print #1, Tb(i, 1)
Next i
'Fermeture
Close #num
End Subça marche du tonnerre ! Et j'avais rien trouvé de semblable sur le net !
Je te remercie mille fois
Pour info, si jamais quelqu'un tombe dessus par hasard et que ça vous aide, j'ai remplacé le username en dynamique
Chemin = "C:\Users\" & Environ("username") & "\Desktop\"Oui, encore que pas tout à fait...
Selon les versions de Windows, le chemin d'accès au bureau est différent. En effet, le bureau fait partie de ce que l'on appelle les répertoires spéciaux.
Pour y accéder, à coup sur, quel que soit l'utilisateur ou l'environnement, il faut passer par l'API Windows et notamment la Library Shell32.
Attention toutefois aux versions Excel 64 Bits à bien ajouter la mention PtrSafe : https://msdn.microsoft.com/fr-fr/library/office/ee691831%28v=office.14%29.aspx
Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwnd As Long, ByVal folderid As Long, shidl As ITEMIDLIST) As Long
Declare Function SHGetPathFromIDList Lib "shell32" Alias "SHGetPathFromIDListA" (ByVal shidl As Long, ByVal shPath As String) As Long
Type SHITEMID
SHItem As Long
itemID() As Byte
End Type
Type ITEMIDLIST
shellID As SHITEMID
End Type
Function Chemin(lngDossier As Long) As String
Dim CheminTemp As String, dtuID As ITEMIDLIST, lngRes As Long
lngRes = SHGetSpecialFolderLocation(0&, lngDossier, dtuID)
If lngRes = 0 Then
CheminTemp = String$(512, Chr$(0))
lngRes = SHGetPathFromIDList(ByVal dtuID.shellID.SHItem, ByVal CheminTemp)
If lngRes Then Chemin = Left$(CheminTemp, InStr(CheminTemp, Chr$(0)) - 1)
End If
End FunctionPour obtenir le chemin d'accès au bureau :
Debug.Print Chemin(16)
On peut ajouter au code ci-dessus une enum reprenant tous les chemins spéciaux [pas utile dans le cas d'aujourd'hui, mais ça peut servir à d'autres] :
Public Enum Repertoire
FavorisCommuns = 1 ' Favoris communs
DemarrerProgrammes = 2 ' Dossier Programmes du menu Démarrer
Documents = 5 ' Mes documents (ou Documents sur Vista/7/8)
Favoris = 6 ' Favoris
DemarrerDemarrage = 7 ' Dossier Démarrage du menu Démarrer
DocumentsRecents = 8 ' Documents récents
EnvoyerVers = 9 ' Dossier "Envoyer vers"
Demarrer = 11 ' Dossier du menu Démarrer
Bureau = 16 ' Bureau
RaccourcisReseau = 19 ' Raccourcis Réseau
Modeles = 21 ' Dossier des modèles de documents
DemarrerCommun = 22 ' Menu Démarrer commun
DemmarrerProgrammesCommun = 23 ' Dossier commun Programmes du menu Démarrer
DemarrerDemarrageCommun = 24 ' Dossier commun Démarrage du menu Démarrer
BureauCommun = 25 ' Bureau commun (public)
Application = 26 ' Dossier Applications (AppData)
RaccourcisImprimantes = 27 ' Raccourcis Imprimantes
FichierInternetTemporaires = 32 ' Dossier des fichiers Internet temporaires
Cookies = 33 ' Cookies
Historique = 34 ' Historique de navigation
Programmes = 38 ' Program Files
End EnumDans ce cas, l'accès, au répertoire Program Files par exemple, se ferait grâce au code :
Debug.Print Chemin(Repertoire.Programmes)