Sub ExportColB()
Dim myFileName As String
Dim nouvFich As String
Dim DernLigne As Integer
Dim Plg As Range
Set Plg = Sheets("feuil1").Range("K9:K500") 'je met en mémoire une plage dans laquelle je vais chercher le numéro de la dernière cellule non vide
Sheets("feuil1").Range("I9:I500").Copy 'je copie la plage de cellule contenant des formules avec mes résultats, la plage n'est pas forcément utilisée en entier.
Sheets("feuil1").Range("K9:K500").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'je colle ma copie temporairement dans une autre colonne
nouvFich = ThisWorkbook.Path & "\" & Sheets("Index").Range("E13") & " - Comptes LDAP" & ".txt" 'je définie le nom de mon fichier et l'emplacement qui sera le dossier ou se trouve mon fichier excel
derlig = Plg.Find("*", , , , xlByRows, xlPrevious).Row 'dans la plage que j'ai collé, je cherche la dernière cellule non vide en cherchant n'importe quel caractère dedans (*)
Set WorkRng = Sheets("feuil1").Range("I9" & ":I" & derlig) 'je définie la plage que je vais exporter avec la première ligne en fixe et la dernière ligne trouvé précédemment (non vide)
myFileName = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt", InitialFileName:=nouvFich) 'j'ouvre la boîte de dialogue d'enregistrement pour permettre de choisir un autre dossier ou nom de fichier
If myFileName = "" Then Exit Sub 'si j'annule, je quitte le programme
With WorkRng 'j'enregistre dans mon fichier txt la plage qui m'intéresse
Open myFileName For Output As #1
Print #1, Join(Evaluate("transpose(" & _
.Address(external:=True) & ")"), vbCrLf)
Close #1
End With
Sheets("feuil1").Range("K9:K500").ClearContents 'je supprime la plage que j'ai copié/collé temporairement
Sheets("feuil1").Range("A1").Select 'je me place sur une cellule de ma feuille
End Sub