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 shutdown

je 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 Function

Pour 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 Enum

Dans ce cas, l'accès, au répertoire Program Files par exemple, se ferait grâce au code :

Debug.Print Chemin(Repertoire.Programmes)

Rechercher des sujets similaires à "export colonne fichier texte"