Excel VBA Export multi onglet txt.file

enzo_s

XLDnaute Junior
Bonjour à tous,
Je suis nouveau sur le forum et je fais mes première macro en VBA :) mais je sèche déjà

Je cherche à faire une macro qui check la cellule "B3" (yes ou No) et qui export dans un fichier TXT
B3= No --> export uniquement l'onglet P-Router1
B3= Yes --> export l'onglet P-Router1et P-router2 dans deux fichier TXT séparé avec comme nom de ficher le nom des onglets

Je joins un fichier comme exemple

Merci de votre aide :)

Enzo
 

Pièces jointes

  • Book1.xlsm
    12.6 KB · Affichages: 4

ThomasR

XLDnaute Occasionnel
Pourquoi utiliser une variable public ?
Il n'y a pas besoin de maintenir cette donnée inutilement...

Personnellement je changerais la sub en fonction de type string et je repositionne la variable dans la sub (donc passer le public en dim)

Une autre solution si tu ne veux pas faire de fonction est de passer répertoire en paramètre de ta sub avec la mention byref.

Je sais que répondre à son besoin est important, mais accompagner l apprentissage c'est mieux, là je pense qu'il y a une erreur d architecture de la solution.

Ne prenez pas cela pour une critique, c'est un super travail et rapide en plus.

Cordialement
Thomas
 

enzo_s

XLDnaute Junior
Re bonjour,

Merci de l'aide, la macro fonctionne bien mais j'essaye de compliquer un peu en disant que :

Si C17=Cat2960 ou 3650, tu exportes l'onglet Acccess_Switch_2960-3650
Si C17=Cat3850 ou 9300, tu exportes l'onglet Acccess_Switch_3850-9300

Je mets la macro qui exporte

VB:
Sub ExportAccessSwitch()
'Update 16.04.2019
Dim wb As Workbook
Dim saveFile As String
Dim WorkRng As Range
On Error Resume Next
'ok ActiveSheet.Range("A1:A411").Select
Sheets("Access_Switch").Visible = True
Application.Goto Sheets("Access_Switch").Range("SwitchAccess")
'Application.Goto ActiveWorkbook.Sheets("Access_Switch").Range("A1:A411")
'Application.Goto Workbooks("Testmacro.xlsm").Sheets("Access_Switch").Range("a1:a441")
'xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Sheets("Access_Switch").Visible = False
'Set WorkRng = Application.InputBox("Range", xTitleId, "a1:a441", Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Application.Workbooks.Add
WorkRng.Copy
wb.Worksheets(1).Paste
saveFile = Application.GetSaveAsFilename(InitialFileName:="Template-Access_Switch", fileFilter:="Text Files (*.txt), *.txt")
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False
wb.Close
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Réponses
7
Affichages
326
Réponses
12
Affichages
246

Statistiques des forums

Discussions
312 209
Messages
2 086 274
Membres
103 168
dernier inscrit
isidore33