VBA correction pour une recopie incrémentée

fb62840

XLDnaute Impliqué
Bonjour à toutes et tous,

Je fais appel à vous afin de m'aider à rédiger correctement le code pour une recopie incrémentée.

Voici ce que j'ai tenté de faire :
Code:
'saisie de la formule sommeprod
f.Range("D2").Formula = "=SUMPRODUCT((Championnat!RC:R[65534]C='CLUB <8'!RC[-3])*(Championnat!RC[-1]:R[65534]C[-1]=""<8"")*(Championnat!RC[206]:R[65534]C[206]))"
'sélection de la cellule contenant la formule à recopier vers le bas
ActiveCell.Select
'C'est ici que je ne sais pas comment indiquer qu'il faut recopier la formule dans la colonne D
'tant qu'il y a un contenu dans la colonne A
Selection.AutoFill Destination:=

Merci de m'aider à finaliser ce code.
 

Pierrot93

XLDnaute Barbatruc
Re : VBA correction pour une recopie incrémentée

Bonjour,

essaie peut être ceci, non testé :
Code:
Selection.AutoFill Destination:=f.Range("D2:D" & f.range("a65536").end(xlup).row )

bon après midi
@+

Edition : bonjour Eric
 
Dernière édition:

fb62840

XLDnaute Impliqué
Re : VBA correction pour une recopie incrémentée

Bonjour,

J'ai testé avec les 2 propositions mais ça ne marche pas.

Voici le code complet dans lequel se trouve la portion de recopie incrémentée.
Je soupçonne en fait que la page à laquelle la recopie incrémenté fait référence n'est pas la bonne.

Code:
Sub Extraire()
Dim plg As Range, f As Worksheet
Dim fin&, i&, a&, fin1&
    'déterminer la plage à extraire dans la feuille Base
    With Sheets("Archers inscrits")
        Set plg = .Range("A1:I" & .Range("A" & Rows.Count).End(xlUp).Row)
    End With
    
    'Boucler sur toutes les feuilles du classeurs
    For Each f In ThisWorkbook.Sheets
        'Si le nom de la feuille commence par 'Club ' (espace compris)
        If f.Name Like ("CLUB *") Then
            'nettoyer toutes les cellules de la feuille
            f.Cells.ClearContents
            'préparation du critère de filtrage avancé
            f.Range("A1") = "Catégorie"
            'critère basé sur la fin du nom de la feuille
            f.Range("A2") = "=""=" & Replace(f.Name, "CLUB ", "") & """"
            'Extraction des données
            plg.AdvancedFilter Action:=xlFilterCopy, _
                CriteriaRange:=f.Range("A1:A2"), CopyToRange:=f.Range("A4:I4"), Unique:=False
            
            'destruction des lignes de critère et séparation
            f.Rows("1:3").EntireRow.Delete
            'destruction des colonnes non nécessaires
            f.Columns("G:I").EntireColumn.Delete
            f.Columns("A:C").EntireColumn.Delete
            'saisie de la formule sommeprod
            f.Range("D2").Formula = "=SUMPRODUCT((Championnat!RC:R[65534]C='CLUB <8'!RC[-3])*(Championnat!RC[-1]:R[65534]C[-1]=""<8"")*(Championnat!RC[206]:R[65534]C[206]))"
           'Recopie vers le bas de la formule (ne marche pas)
              Selection.AutoFill Destination:=Range("D2:D" & Range("A65536").End(xlUp).Row).FillDown

With Feuil31
        fin = .Range("A" & Rows.Count).End(xlUp).Row
        For i = 2 To fin
            fin1 = Sheets("CLUB " & .Cells(i, 8)).Range("A" & Rows.Count).End(xlUp).Row
            For a = 2 To fin1 - 1
            If Sheets("Club " & .Cells(i, 8)).Cells(a, 1) = Sheets("CLUB " & .Cells(i, 8)).Cells(fin1, 1) Then
                    With Sheets("CLUB " & .Cells(i, 8))
                        .Range(.Cells(fin1, 1), .Cells(fin1, 3)).ClearContents: Exit For
                    End With
                End If
            Next a
        Next i
End With
            
        End If
    Next
End Sub
 

fb62840

XLDnaute Impliqué
Re : VBA correction pour une recopie incrémentée

Oui, même avec la dernière ligne de code proposée j'ai le même type de message d'erreur.

Voici en pièce-jointe le fichier complet que j'utilise

Quelques explication :
La feuille base : contient toutes les données relatives aux archers
La feuille accueil : contient les boutons d'appels des macros, formulaires
La feuille Archers inscrits : contiendra les archers sélectionnés avec le formulaire UserForm3 (bouton Sélectionner les archers) - sur le formulaire j'ai laissé les listbox en bas de boîte visible mais ils ne le seront pas au final)
La feuille Championnat : est la feuille sur laquelle seront enregistrés les résultats des archers au cours de la compétition (à partir du bouton Résultats sur la feuille Accueil)
Les feuille IND suivi de <8, <10 etc : Elles sont complétées à l'inscription des archers (il me reste un problème pour lequel je n'identifie pas l'origine pour les 2 derniers archers qui sont <50 pour l'un et >=50 pour l'autre). Ce sont les feuilles sur lesquelles seront calculés depuis la feuille Résultats les scores des archers au cours du championnat
Sur ces feuilles, j'aurai besoin en colonne J de calculer le score total de l'archer (que je ferai avec une formule sommeprod)
Les feuilles CLUB suivi de <8, <10 etc : Ces feuilles sont complétées à l'inscription des archers. Ce sont les feuilles sur lesquelles seront calculés depuis la feuille Résultats les scores des archers au cours du championnat
Sur ces feuilles j'aurai besoin en colonne D de calculer le score total de l'archer (la question du post originale)

Voir le code sur le bouton CommandButton1 sur le formulaire UserForm3


J'espère que ça vous semblera lisible.

SI vous avez des questions n'hésitez pas
 

Pièces jointes

  • fb_v03VM3.xls
    303 KB · Affichages: 33

Discussions similaires

Réponses
2
Affichages
629
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet