XL 2016 fonction Array

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 !

poussy67

XLDnaute Occasionnel
Bonjour le Forum

J'ai un souci sur une VBA que j'ai copier sur le forum, qui copie et colle dans des feuilles bien précise, jusqu’à la tout fonctionne.
Quand j'insère une feuille (BD), lors du traitement les données disparaisses sauf sur une feuille1 (Z_Art_Stock). Dans la VBA il y a
If sh.Name <> "Z_Art_Stock" Then exclus la feuille lors de la mise a jour des feuilles (efface les anciens données). J'ai essaye de
ajouter le fonction Array mais sans résultat en ajoutant . Je fais appelle au pro pour un coup de pouce .

en vous remerciant d'avance

Dim pl As Range
Dim F1
Set pl = Sheets("Z_Art_Stock").Range("Base")
pl.Name = "Base"
For Each sh In Sheets

F1 = Array("Z_Art_Stock", "BD")
If sh.Name <> "F1" Then '--------------KO ne fonctionne pas

' If sh.Name <> "Z_Art_Stock" Then ' ok
With sh
.[K1] = "Mag1"
.[K2] = sh.Name
pl.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.[K1:K2], CopyToRange:=.Range("A1:J1"), Unique:=False
.[K1:K2].ClearContents
End With
End If
Next sh


Cdt poussy
 
Salut,
Il faut rajouter une petite variable compteur si j'ai bien compris la demande notée ici xCpt

VB:
    Dim pl As Range
    Dim F1
    Dim xCpt
    xCpt = 0
    Set pl = Sheets("Z_Art_Stock").Range("Base")
    pl.Name = "Base"
    For Each sh In Sheets
    
        F1 = Array("Z_Art_Stock", "BD")
        If sh.Name <> F1(xCpt) Then
            ' If sh.Name <> "Z_Art_Stock" Then ' ok
            With sh
                .[K1] = "Mag1"
                .[K2] = sh.Name
                pl.AdvancedFilter Action:=xlFilterCopy, _
                CriteriaRange:=.[K1:K2], CopyToRange:=.Range("A1:J1"), Unique:=False
                .[K1:K2].ClearContents
            End With
        End If
        xCpt = xCpt + 1
    Next sh
@+ Lolote83
 
Bonjour poussy67, Lolote83,

Il y a bug aussi avec xCpt = 0, la variable xCpt ne va pas, il faut modifier le test If :
VB:
F1 = Array("Z_Art_Stock", "BD", "Synthèse")
For Each sh In Sheets
    If IsError(Application.Match(sh.Name, F1, 0)) Then
        With sh
            '---
A+
 
- 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
4
Affichages
581
Réponses
5
Affichages
590
Réponses
1
Affichages
701
Retour