recopier la même cellule dans toutes les feuilles d'un classeur

  • Initiateur de la discussion Initiateur de la discussion superbog
  • 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 !

superbog

XLDnaute Occasionnel
Bonjour,

Voici ma difficulté.

J'ai un classeur avec près de 200 feuilles, je voudrais recopier les cellules "AK22:AP22" de la feuille "modele" vers toutes les feuilles dont le nom est numérique

Auriez vous une macro pour cela?

merci d'avance
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

hello superdog,


Cette macro dans ThisWorkBook
Code:
Sub test1()


Dim FF As Worksheet



For Each FF In Worksheets

Nom = FF.Name


If FF.Name <> "model" Then

Sheets(Nom).Range("AK22:AP22").Value = Sheets("model").Range("AK22:AP22").Value
End If

Next



End Sub
Meilleures salutations

Vorens
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

Bonjour superbog,

peut-être

Code:
Sub test()
Dim Ws As Worksheet
    For Each Ws In ThisWorkbook.Worksheets
        If IsNumeric(Ws.Name) Then
            Ws.Range("AK22:AP22").Value = Worksheets("modele").Range("AK22:AP22").Value
        End If
    Next
End Sub

Edit : Bing, Bonjour Vorens
Pourquoi dans Thisworkbook ?
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

Re,

Alors je conseillerais plutôt de le mettre dans un module, les codes des feuilles et de Thisworkbook j'ai tendance à les réserver au code évènementiel, mais ce n'est qu'une habitude 🙂
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

merci ca marche superbien

une précision, comment faire avec une input box pour changer le "range"?

ainsi si cela se reproduit, il suffit de mettre la ou les cellules considérée et pas besoin de modifier la macro



Bonjour superbog,

peut-être

Code:
Sub test()
Dim Ws As Worksheet
    For Each Ws In ThisWorkbook.Worksheets
        If IsNumeric(Ws.Name) Then
            Ws.Range("AK22:AP22").Value = Worksheets("modele").Range("AK22:AP22").Value
        End If
    Next
End Sub

Edit : Bing, Bonjour Vorens
Pourquoi dans Thisworkbook ?
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

Re,


C'est une bonne habitude. je pratique la même méthode mais je t'avoue que lorsque je fais un petit essais pour répondre à une question. je met le code un peut au premier endroit qui passe 🙂
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

Re super,


Pour cela il faut placer l'adresse des range en variable

Sheets(Nom).RangeRangeN1 & ":" & RangeN2).Value = Sheets("model").Range(RangeN1 & ":" & RangeN2).Value


et bien sure, affecter la valeur de la variable avec le contenu de ton input box

RangeN1 = inputbox.text

Meilleures salutations
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

Re,

Peut-être

Code:
Sub test()
Dim Ws As Worksheet, R As Range
    Set R = Application.InputBox("Sélectionner la plage", , , , , , , 8)
    
    For Each Ws In ThisWorkbook.Worksheets
        If IsNumeric(Ws.Name) Then
            Ws.Range(R.Address).Value = Worksheets("modele").Range(R.Address).Value
        End If
    Next
End Sub
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

ca ne marche pas 🙁

Re,

Peut-être

Code:
Sub test()
Dim Ws As Worksheet, R As Range
    Set R = Application.InputBox("Sélectionner la plage", , , , , , , 8)
    
    For Each Ws In ThisWorkbook.Worksheets
        If IsNumeric(Ws.Name) Then
            Ws.Range(R.Address).Value = Worksheets("modele").Range(R.Address).Value
        End If
    Next
End Sub
 
Re : recopier la même cellule dans toutes les feuilles d'un classeur

Bonjour à tous

Une autre façon de faire avec FillAcrossSheets
(qui bizarrement est rarement utilisé 😉 )
VB:
Sub testOK()
Dim tSht() As String, ws As Worksheet, i As Integer, z
ReDim tSht(1 To 1): tSht(1) = "modele": i = 1
For Each ws In Worksheets
If IsNumeric(ws.Name) Then
i = i + 1: ReDim Preserve tSht(1 To i): tSht(i) = ws.Name
End If
Next
Worksheets(tSht).FillAcrossSheets Worksheets("modele").Range("AK22:AP22")
End Sub

PS: On peut même choisir ce que l'on veut copier
[TABLE="class: grid, width: 500"]
[TR]
[TD]XlFillWith peut être l'une de ces constantes XlFillWith.[/TD]
[/TR]
[TR]
[TD]xlFillWithAll par défaut[/TD]
[/TR]
[TR]
[TD]xlFillWithContents[/TD]
[/TR]
[TR]
[TD]xlFillWithFormats[/TD]
[/TR]
[/TABLE]
Exemple pour ne recopier que le format:
Worksheets(tSht).FillAcrossSheets Worksheets("modele").Range("AK22:AP22"), xlFillWithFormats
 
- 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
7
Affichages
454
Réponses
3
Affichages
326
Réponses
5
Affichages
665
Réponses
25
Affichages
1 K
Retour