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

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("D1018"), Type:=xlFillDefault
Range("D1018").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("C1018,F10:F18").Select
Range("F10").Activate
Selection.Copy
Range("C1018").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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…