Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion manuBX
  • 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 !

manuBX

XLDnaute Occasionnel
Bjr

J ai fait une modif de la macro en y ajoutant
Range("E4").Select
Selection.Copy
Range("G19").Select
ActiveSheet.Paste
ça le fait sur la derniere feuille et je voudrais que ça le fasse sur toutes les feuilles existantes sauf sur XXX MODELE et Feuil1 et Consignations élec CR avant de continuer la suite de la macro
Merci de votre aide
 

Pièces jointes

  • no.zip
    no.zip
    29.5 KB · Affichages: 26
Re : modif macro

Bonjour manuBX
Voyez si la ligne ajoutée (en rouge) est convenable.
Code:
[COLOR="DarkSlateGray"]Sub Macro1()

Dim vm As Integer 'déclare la variable vm (Valeur Maximum)
Dim sh As Worksheet 'déclare la variable sh (SHeet)
Dim n As String 'déclare la variable n (Nom)
Dim chem As String 'déclare la variable chem (CHEMin)

    chem = ThisWorkbook.Path & "\" 'définit la variable chem
    vm = (1)   'définit la variable vm
    
    For Each sh In Sheets 'boucle sur tous les onglets du classeur
        'si la valeur convertie en entier de E4 est supérieure à vm, alors vm prend cette valeur
        sh.Unprotect
        If CInt(sh.Range("E4")) > vm Then vm = CInt(sh.Range("E4"))
    Next sh 'prochain onglet de la boucle (à la fin, vm à pris la plus grande valeur)
    'boite d'entrée pour demander le nom du fichier copié
    n = InputBox("Donnez le nom au nouveau fichier. Sans l'extension !", "RENOMMER")
    If n = "" Then Exit Sub 'si aucun nom n'est édité, sort de la procédure
    
    ActiveWorkbook.SaveAs Filename:=chem & n & ".xls" 'copie le classeur avec le nom proposé
    
    'Oter la protection de la feuille
    ActiveSheet.Unprotect
    Range("E4").Select
    Selection.Copy
    Range("G19").Select
    ActiveSheet.Paste
    
    For Each sh In Sheets 'boucle sur tous les onglets du nouveau classeur
        'si E4 de l'onglet n'est pas vide, ajoute vm à la valeur de E4
        If sh.Range("E4") <> "" And sh.Name <> "XXX MODELE" _
            And sh.Name <> "feuil1" And sh.Name <> "Consignations élec CR" Then
            [B][COLOR="Red"]sh.Range("E4").Copy Destination:=sh.Range("G19")[/COLOR][/B]
            sh.Range("E4") = vm + 1: sh.Name = vm + 1: vm = vm + 1
        End If
    Next sh 'prochain onglet de la boucle
    ActiveSheet.Protect 'Protéger la feuille
    ActiveWorkbook.Save 'sauve le nouveau classeur
End Sub[/COLOR]
Bonne journée.
ROGER2327
 
- 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
10
Affichages
798
Réponses
1
Affichages
575
Réponses
1
Affichages
478
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…