macro pour appliquer un code sur tous les feuille du classeur

creolia

XLDnaute Impliqué
Bonsoir a tous

je viens vers vous pour car je souhaiterais appliquer cette macro sur plusieur feuil de mon classeur qui sont tous identique en nombre de colonne et de ligne ainsi qu'au different emplacement.

j'avais penser de copier la macro plusieur fois pour chaque feuil mais je me demandais si il y avais pas une solution plus simple .

a savoir la macro se trouveras dans un usf affecter a un bouton

merci pour votre aide

Code:
Sub TEST()

       
        
        Dim NBLigne As Integer
        
        For NBLigne = 5 To Sheets("FORMATION2").Range("B65536").End(xlUp).Row
        
        
            derlig = Sheets("CAV").Range("L1000").End(xlUp).Row + 1
            
            'FORMATION1
            If Cells(NBLigne, 9) < 10 Then
                Sheets("CAV").Range("L" & derlig).Value = Range(Cells(NBLigne, 2), Cells(NBLigne, 2)).Value 'nom
                Sheets("CAV").Range("M" & derlig).Value = Range(Cells(NBLigne, 3), Cells(NBLigne, 3)).Value 'prenom
                Sheets("CAV").Range("N" & derlig).Value = Range(Cells(NBLigne, 4), Cells(NBLigne, 4)).Value 'service
                Sheets("CAV").Range("O" & derlig).Value = Range(Cells(NBLigne, 9), Cells(NBLigne, 9)).Value 'NB jour restant
                Sheets("CAV").Range("K" & derlig).Value = Range(Cells(NBLigne, 10), Cells(NBLigne, 10)).Value 'formation
            End If
            
            
            
            'fin de la condition
        Next

End Sub
 

gilbert_RGI

XLDnaute Barbatruc
Re : macro pour appliquer un code sur tous les feuille du classeur

Bonsoir

Comme ceci peut-être
Code:
Sub TEST()
        Dim NBLigne As Integer
        For sh = 1 To Sheets.Count
        If Sheets(sh).Name = "FORMATION2" Then GoTo suite
        For NBLigne = 5 To Sheets("FORMATION2").Range("B65536").End(xlUp).Row
            derlig = Sheets(sh).Range("L1000").End(xlUp).Row + 1
            'FORMATION1
            If Cells(NBLigne, 9) < 10 Then
                Sheets(sh).Range("L" & derlig).Value = Range(Cells(NBLigne, 2), Cells(NBLigne, 2)).Value 'nom
                Sheets(sh).Range("M" & derlig).Value = Range(Cells(NBLigne, 3), Cells(NBLigne, 3)).Value 'prenom
                Sheets(sh).Range("N" & derlig).Value = Range(Cells(NBLigne, 4), Cells(NBLigne, 4)).Value 'service
                Sheets(sh).Range("O" & derlig).Value = Range(Cells(NBLigne, 9), Cells(NBLigne, 9)).Value 'NB jour restant
                Sheets(sh).Range("K" & derlig).Value = Range(Cells(NBLigne, 10), Cells(NBLigne, 10)).Value 'formation
            End If
            'fin de la condition
        Next
suite:
Next
End Sub
 

jpb388

XLDnaute Accro
Re : macro pour appliquer un code sur tous les feuille du classeur

Bonsoir
il faut créer un module et y mettre la procédure test
sub test( byval Nom as string,byval NbLigne as integer)
derlig = Sheets(nom).Range("L1000").End(xlUp).Row + 1

'FORMATION1
If Cells(NBLigne, 9) < 10 Then
Sheets(nom).Range("L" & derlig).Value = Range(Cells(NBLigne, 2), Cells(NBLigne, 2)).Value 'nom
Sheets(nom).Range("M" & derlig).Value = Range(Cells(NBLigne, 3), Cells(NBLigne, 3)).Value 'prenom
Sheets(nom).Range("N" & derlig).Value = Range(Cells(NBLigne, 4), Cells(NBLigne, 4)).Value 'service
Sheets(nom).Range("O" & derlig).Value = Range(Cells(NBLigne, 9), Cells(NBLigne, 9)).Value 'NB jour restant
Sheets(nom).Range("K" & derlig).Value = Range(Cells(NBLigne, 10), Cells(NBLigne, 10)).Value 'formation
End If
tous les sheets(nom) en sheets(Nom)
'fin de la condition

et enfin dans la macro du bouton vous ne devez avoir que

Dim NBLigne As Integer
For NBLigne = 5 To Sheets("FORMATION2").Range("B65536").End(xlUp).Row
call test(activesheet.Name,NbLigne)

Next
a+
jpb
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : macro pour appliquer un code sur tous les feuille du classeur

Bonsoir,
...a savoir la macro se trouveras dans un usf affecter a un bouton
Je ne vois pas bien le rapport entre le formulaire et la macro
Si elle doit être lancer depuis le formulaire, peut-être est-il possible de passer le nom de ta feuille comme argument dans ta macro
Code:
Sub test(nom de ta feuille)
A+
kjin
 

Discussions similaires

Réponses
0
Affichages
177