IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Conserver lignes et colonnes selon condition coche [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2019
    Messages : 2
    Par défaut Conserver lignes et colonnes selon condition coche
    Bonjour à tous,

    Nouveau sur le forum et novice en VBA, j'ai un besoin concernant une macro que je n'arrive pas à réaliser.
    J'espère que vous pourrez m'aider

    J'ai un tableau dans un onglet "BDD", je souhaite ne conserver que certaines lignes et certaines colonnes pour les coller dans un onglet "NEW".
    Pour cela, en colonne A je marque d'une coche "x", l'ensemble des lignes que je souhaite conserver.
    Puis en ligne 1, je marque d'une coche "x" l'ensemble des colonnes que je souhaite conserver.


    La macro doit :

    1. Supprimer l'ensemble du contenu de l'onglet "NEW"

    2. Copier/coller l'ensemble du contenu de l'onglet "BDD" dans l'onglet "NEW"

    3. Supprimer les lignes qui n'ont pas de coche en colonne A.

    4. Supprimer les colonnes qui n'ont pas de coche en ligne 1.


    J'aimerais que cette macro soit dynamique, que je puisse rajouter ou supprimer une coche en colonne A ou ligne 1.

    Voici un fichier pour mieux comprendre. FichierTestsVBA.xlsm
    Dans l'onglet "BDD" le tableau de base.
    Et le résultat que je souhaite avoir est dans l'onglet "NEW".

    Pouvez-vous m'aider pls ?
    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Se mettre sur la feuille BDD pour lancer la macro
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Option Compare Text
     
    Sub Recup_Selection()
        Dim f1 As Worksheet, f2 As Worksheet
        Dim DerLig_f1 As Long, DerCol_f1 As Long
     
        Application.ScreenUpdating = False
        Set f1 = Sheets("BDD")
        Set f2 = Sheets("NEW")
     
        DerLig_f1 = f1.[A100000].End(xlUp).Row
        DerCol_f1 = [Xfd1].End(xlToLeft).Column    
        f2.Cells.Clear
        f1.Range(Cells(1, 1), Cells(DerLig_f1, DerCol_f1)).Copy Destination:=f2.Cells(1, 1)
        For i = DerLig_f1 To 3 Step -1
            If f2.Cells(i, "A") = "" Then f2.Cells(i, "A").EntireRow.Delete
        Next i
        For i = DerCol_f1 To 3 Step -1
            If f2.Cells(1, i) = "" Then f2.Cells(1, i).EntireColumn.Delete
        Next i
     
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Autre méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Option Compare Text
     
    Sub Recup_Selection()
        Dim f1 As Worksheet, f2 As Worksheet
        Dim DerLig_f1 As Long, DerCol_f1 As Long
     
        Application.ScreenUpdating = False
        Set f1 = Sheets("BDD")
        Set f2 = Sheets("NEW")
     
        DerLig_f1 = f1.[A100000].End(xlUp).Row
        DerCol_f1 = [Xfd1].End(xlToLeft).Column
        f2.Cells.Clear
        Rows("1:1").Select
        If f1.AutoFilterMode Then
            isOn = "On"
        Else
            isOn = "Off"
            Selection.AutoFilter
        End If
        f1.Range(Cells(1, "A"), Cells(DerLig_f1, DerCol_f1)).AutoFilter Field:=1, Criteria1:="<>"
        f1.Range(Cells(1, "A"), Cells(DerLig_f1, DerCol_f1)).SpecialCells(xlVisible).Copy Destination:=f2.Cells(1, 1)
        For i = DerCol_f1 To 3 Step -1
            If f2.Cells(1, i) = "" Then f2.Cells(1, i).EntireColumn.Delete
        Next i
        f1.Rows("1:1").AutoFilter
     
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Cdlt

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2019
    Messages : 2
    Par défaut
    Super merci Arturo83 ça fonctionne parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Afficher colonne selon conditions
    Par alexislv dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 16/06/2014, 16h32
  2. Concatener plusieurs lignes en une selon condition
    Par budfox777 dans le forum Excel
    Réponses: 3
    Dernier message: 27/03/2012, 18h40
  3. [2008] Changement de valeur d'une colonne selon condition
    Par jubourbon dans le forum SSIS
    Réponses: 3
    Dernier message: 08/03/2012, 18h14
  4. [XL-2003] couleur d'une cellule d'une colonne selon conditions
    Par bartsho dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/12/2011, 12h44
  5. masquer colonnes selon conditions
    Par chouchouboy dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/10/2010, 19h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo