Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 VB Macro

  • Initiateur de la discussion Initiateur de la discussion enzo_s
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

enzo_s

XLDnaute Junior
Bonjour Forum,

J'ai une petite question sur une macro, qui est ci-dessous.

J'essaye d'exporter dans un seul fichier les feuilles qui sont sélectionnées dans le case check ci-dessous.

Comment je pourrais dire de voir ce qui est coché et d'exporter plutôt que tout prendre.

Merci d'avance de l'aide 🙂




VB:
Sub ExportBlock3()
Dim prefixName As String
Dim fichier As Variant, F As Worksheet, tablo, i&, txt$
prefixName = Range("C3").Value
If [C5] = "Select" Then MsgBox "Please add your WLC Name"
ChDir ThisWorkbook.Path & "\" 'dossier affiché
fichier = "Configuration deployment " & prefixName & Format(Date, "yyyy-mm-dd")
fichier = Application.GetSaveAsFilename(fichier, "Text Files (*.txt), *.txt")
If fichier = False Then Exit Sub
'ActiveSheet.Unprotect "**"
For Each F In Sheets(Array("Backup-GC", "Interfaces Creation", "Global Configuration", "RF-Profiles", "Flexconnect-Grps", "Final-Backup"))
    tablo = F.UsedRange.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        If Not IsError(tablo(i, 1)) Then If tablo(i, 1) <> "!" Then txt = txt & vbCrLf & tablo(i, 1)
Next i, F
Open fichier For Output As #1
Print #1, Mid(txt, 2)
'ActiveSheet.Protect "**"
Close #1
End Sub
 
Bonjour,

Dans l'évènement click du bouton:
VB:
 Dim F As Worksheet
    Dim res() As String
    Dim ctl As Control
    Dim i As Integer
    For Each ctl In Me.Controls
        If TypeOf ctl Is Msforms.CheckBox Then
            i = i + 1
            ReDim Preserve res(1 To i)
            res(i) = ctl.Caption
        End If
    Next ctl
    If i > 0 Then ExportBlock3 (res)

et la macro d'export:

Code:
Sub ExportBlock3(Feuilles As Variant)
    '...... Début de la macro'

    For Each F In Sheets(Feuilles)
        tablo = F.UsedRange.Resize(, 2)    'matrice, plus rapide, au moins 2 éléments
        For i = 1 To UBound(tablo)
            If Not IsError(tablo(i, 1)) Then If tablo(i, 1) <> "!" Then txt = txt & vbCrLf & tablo(i, 1)
        Next i, F
        Open fichier For Output As #1
        Print #1, Mid(txt, 2)
        'ActiveSheet.Protect "**"
        Close #1
    End Sub

Bon appétit
 
Salut Roblochon.

C'est vrai j’aurai du le mettre dès le départ ! J'en m'en excuse du temps que tu as perdu.

Je viens de tester le fichier mais il me met une erreur 9 .

Sur ton PC ça fonctionne ?

A++


 
Re,

Oui j'ai testé. J'ai même du créer les feuilles pour pouvoir le faire puisque votre fichier exemple est quasi vide.
Alors, alors:

Lancez la procédure, lorsqu'elle s'arrête sur la ligne et que vous choisissez débogage. Faite Affichage/Fenêtre variables locales.
Dans la fenêtre qui s'ouvre repérez la variable feuilles. En face vous devriez avoir: Variant/String (1 to 3) Où 3 est le nombre de feuilles sélectionnées.
Si vous cliquez sur le + à gauche de 'feuilles' vous devriez voir se développez un arbre avec:
feuille(1)
feuille(2)
etc...
Avec en face de chaque item, sa valeur.

Dites-moi

Bon après-midi au frais
 
Dernière édition:
Re,
le problème était le nom que j'avais mis dans les cases.
...arf 🙂
Content que vous l'ayez trouvé tout seul. Je pensais bien qu'il s'agissait de quelque chose comme cela.
Si votre classeur doit être utilisé par d'autres et que les feuilles ne sont pas protégées, il serait bien de prévoir une gestion d'erreur au cas où l'utilisateur aurait changé ne serait-ce que d'un caractère le nom d'une feuille.

A bientôt
 

En tout cas mille Merci pour votre patience 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
182
Réponses
8
Affichages
469
Réponses
5
Affichages
238
Réponses
4
Affichages
177
Réponses
5
Affichages
477
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…