XL 2016 macro avec boucle

benbella1991

XLDnaute Nouveau
Bonjour la famille, j'espère que vous allez bien;)

Je sollicite vraiment votre aide, j'ai pu enregistrer une macro qui me permet de récupérer les données d'un page et les transférer dans d'autres (avec quelques petits xls).
Bien-sûr je l'ai effectué sur une feuille et ensuite j'ai ajouté une boucle pour faire tourner sur un certain nombre feuilles.

Cependant, la macro est fonctionnelle sur toutes les feuilles pour le premier lancement, mais après elle ne fonctionne que pour la feuille active.

Voici la macro:

Sub A_Semaine_Suivante()
Dim Ws As Worksheet

' Semaine_Suivante Macro
'
For Each Ws In Worksheets

Range("C10").Select

'formule recherche v

ActiveCell.FormulaR1C1 = _
"=+IFERROR(VLOOKUP(RC2,'SUIVI TRAVAUX'!C2:C31,2,FALSE),)"
Range("C10").Select
Selection.AutoFill Destination:=Range("C10:C18"), Type:=xlFillDefault
Range("C10:C18").Select
Range("C10").Select
Selection.Copy
Range("D10").Select
ActiveSheet.Paste

Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=+IFERROR(VLOOKUP(RC2,'SUIVI TRAVAUX'!C2:C31,3,FALSE),)"
Range("D10").Select
Selection.AutoFill Destination:=Range("D10:D18"), Type:=xlFillDefault
Range("D10:D18").Select
Range("D10").Select
Selection.Copy
Range("F10").Select
ActiveSheet.Paste

Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=+IFERROR(VLOOKUP(RC2,'SUIVI TRAVAUX'!C2:C31,29,FALSE),)"
Range("F10").Select
Selection.AutoFill Destination:=Range("F10:F18"), Type:=xlFillDefault
Range("F10:F18").Select
Range("J10:J18,L10:L18").Select
Range("L10").Activate
Selection.ClearContents
Range("C10:D18,F10:F18").Select
Range("F10").Activate
Selection.Copy
Range("C10:D18").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F10:F18").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F20").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("D20").Select

If Ws.Name = "RECAPITULATIF" Then Exit For


Next Ws

End Sub

Please, help me!!!!
 
Solution
@benbella1991 et @ERIC S

Sur la version plus courte du post #6 j'ai oublié des guillemets.... """ dans la la formule pour si erreur ;)
Erreur corrigée ... 🤣

VB:
Sub A_Semaine_Suivante()
Dim Ws As Worksheet
For Each Ws In Worksheets
    If Ws.Name <> "RECAPITULATIF" Then
        With Ws
            .[C10:C18].FormulaLocal = "=SIERREUR(RECHERCHEV($B10;'SUIVI TRAVAUX'!$B:$AE;2;FAUX);"""")"
            .[C10:C18] = .[C10:C18].Value
           
            .[D10:D18].FormulaLocal = "=SIERREUR(RECHERCHEV($B10;'SUIVI TRAVAUX'!$B:$AE;2;FAUX);"""")"
            .[D10:D18] = .[D10:D18].Value
           
            .[F10:F18].FormulaLocal = "=SIERREUR(RECHERCHEV($B10;'SUIVI TRAVAUX'!$B:$AE;2;FAUX);"""")"
            .[F10:F18] =...

Discussions similaires

Réponses
3
Affichages
569

Statistiques des forums

Discussions
312 104
Messages
2 085 337
Membres
102 865
dernier inscrit
FreyaSalander