Décalage filtre & checkbox

Bonjour à tous,

Je poursuis mes outils et je bloque sur un décalage entre des checkbox et les lignes réellement copiées après utilisation d'un filtre.

Sans filtre sur les données, les checkbox sélectionnées permettent de copier correctement les lignes correspondantes.

Avec filtre (par exemple sur les semaines ou équipements) les lignes copiées ne sont pas celles correspondantes aux checkbox (s'agirait-il d'un problème de REDIM Preserve ou un simple décalage d'indice?)

Pour faire des tests, dans le fichier cumul_TB, à partir de l'onglet données, ajouter les checkbox /cocher / puis copier sélection vers l'onglet Extraction.

Merci d'avance,

6cumul-tb.xlsm (123.64 Ko)

Bonjour,

Un essai ...

If Cells(r, 1).Top = ChkBx.Top And Rows(r & ":" & r).Hidden = False Then

ric

Bonjour ric,

Merci pour la solution, ça fonctionne.

Bonjour à tous,

Décidément les checkbox m'en veulent aujourd'hui.

Cette fois-ci les checkbox sont ignorées dans la sélection des lignes à copier. A partir de la feuille d'extraction, l'objectif est de remplir certaines colonnes dans un modèle de planning (bouton remplissage planning). Si je choisis 3 checkbox dans une liste de 8, les 8 vont être copiées.

Rq: je suis parti sur cette solution car j'ai bloqué avec l'utilisation de la macro (transfert sélection) qui me prend bien les 3 checkbox sur les 8 mais écrit les valeurs dans la zone basse de la feuille (problème de range tab_planning, tab_heures avec row.count).

C'est surement pas grand chose, je ne le vois pas.

Merci d'avance,

2cumul-tb.xlsm (188.21 Ko)

Bonjour,

À cette 2e étape où > si j'ai bien compris ...
Tu veux copier les lignes de la feuille "Extraction" dont les ChkBx sont cochées vers la feuille "Analyse" ....

C'est donc exactement la même méthode que copier les lignes de la feuille "données" dont les ChkBx sont cochées vers la feuille "Extraction" ...

Attention > j'ai renommé la macro "CopyRows" en "CopyRowsDonnees" et "Extrait_planning" en "CopyRowsExtration" > il y aura les boutons d'appel à corriger ...

Il restera quand même de l'amélioration du code à faire > dès que le résultat du traitement te conviendra ...

'---------------------------------------------------------------
'-- Découpage Extraction --> Analyse
'---------------------------------------------------------------

Sub CopyRowsExtraction()
Dim DLig As Integer     ' << dernière ligne
Dim FEx As Worksheet    ' << feuille Extraction
Dim FAn As Worksheet    ' << feuille Données
Dim r As Integer, LRow As Integer

    Set FAn = Worksheets("Analyse")
    Set FEx = Worksheets("Extraction")

    DLig = FAn.Cells(Rows.Count, "B").End(xlUp).Row
    FAn.CheckBoxes.Delete                       ' << supprimer chkbx
    FAn.Range("A1:K" & DLig).ClearContents      ' << vider données

    FEx.Range("B1:K1").Copy _
            Destination:=FAn.Range("B1")

    For Each ChkBx In FEx.CheckBoxes
        If ChkBx.Value = 1 Then
            For r = 2 To FEx.Cells(Rows.Count, "B").End(xlUp).Row
                If FEx.Cells(r, 1).Top = ChkBx.Top And FEx.Rows(r & ":" & r).Hidden = False Then  'And Rows(r & ":" & r).Hidden = False  pour ne sélectionner que les checkbox active
                    With FAn                                         '  nom feuille recopie
                        LRow = .Range("C" & Rows.Count).End(xlUp).Row + 1    
                        .Range("B" & LRow & ":k" & LRow) = _
                        FEx.Range("c" & r & ":L" & r).Value               'nom feuille origine données
                    End With
                    Exit For
                End If
            Next r
        End If
    Next

End Sub

ric

Bonjour ric,

Merci d'avoir apporter un regard sur le code. J'ai intégré tes modifications ce qui me permet de remplir la partie du planning en intégrant une deuxième page lorsque le nombre de ligne est trop grand.

Cependant apparaît à nouveau un problème avec LRow dans le code lorsque je fais cet export sur les colonnes filtrées de la feuille extraction.

A partir de la feuille extraction, j'applique un filtre (exemple sous_système) puis j'affiche les checkbox, je click les lignes souhaitées puis click bouton (transfert Extraction vers Modèle). Le problème provient probablement du décalage de 17 lignes saisi pour remplir en début de page 2.

C'est probablement encore un détail, mais je ne vois pas.

2cumul-tb-v2.xlsm (207.67 Ko)

Merci d'avance,

Bonjour,

J'ai corrigé la macro "Ajoutcheckboxes" en ajoutant la condition que la ligne soit visible > sinon > quand des lignes étaient masquées dû au filtre > plusieurs Chktbx se positionnaient mal et n'étaient pas supprimables via "RemoveCheckboxes" ...

J'ai aussi corrigé ton souci d'écriture dans la feuille "Modèle" > il faut se fier au NbCb (nombre de Chkbx) ...

Espérant le tout conforme ...

ric

Bonjour ric,

La modification faite sur le code me permet de filtrer et exporter comme souhaité. Merci.

Petit bémol sur microsoft la formule MAX.SI.ENS n'est pas disponible sur la version excel 2010 alors que la formule MOYENNE.SI.ENS est disponible. C'est surprenant.

Je vais pouvoir poursuivre la génération des plannings personnalisés à partir du modèle.

Puis je me pencherai sur la partie analyse des données (il y avait un premier essai avec la macro extrait planning et l'utilisation d'une colonne clé. Me faut fusionner les lignes doublons et faire les sommes correspondantes et autres calculs). On verra d'ici là.

Rechercher des sujets similaires à "decalage filtre checkbox"