Selection plage avec condition multiple

Résolu
Bonjour,

Je suis en train d'automatiser un fichier excel mais j'ai un souci de connaissance pour y parvenir, por tout dire je suis novice dans la programmation VBA mais j'essaie de m'améliorer ... :o)
Je dispose d'une feuille 1 avec 10 colonnes
J'aimerais avoir un formulaire utilisateur permettant de sélectionner les données dans feuille1 avec des critères multiples(colonne 1 à 10), une fois la sélection réalisée j'aimerais que les informations soit exporté dans une nouvelle feuille.

Merci pour votre aide

;o)
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Bonsoir,
    Dorotheejeanne,
    Je ne vois pas l'intérêt de copier coller l'ensemble car il semblerait que le but de la demande soit de récupérer certaines données et non pas la totalité de la feuille.

    Bibi,
    Si je comprends bien ta demande il te faut filtrer tes données :
    Sans avoir besoin de connaitre les macros, tu peux effectuer un filtre : Menu données, filtrer, filtre automatique. Tu verras une petite flèche s'afficher sur la 1ère cellule de chaque colonne. En cliquant sur la flèche de la colonne "mois" tu choisis 11, colonne "Type" : M et colonne "montant" Personnalisé : >5. Tu obtiendras les seules données qui t'intéressent et tu pourras les copier/coller dans une autre feuille. Il te suffira de désactiver le filtre entièrement en passant par le menu "données" ou désactiver chaque colonne en cliquant par la flèche sur "Tout".
    C'est plus facile que de passer par le VBA si tu n'as pas de connaissance dans ce domaine.
    Sinon, il y aura surement quelqu'un pour répondre au mieux à ta demande.
    Bon courage
    Eve
    1. --Que voulez vous faire exactement répondez je pourrai peut être vous aider

      dorotheejeanne
      1. alors voila j'ai une feuille 1 avec des colonnes :

        Colonne 1 = Nom
        Colonne 2 = Departement
        Colonne 3 = Materiel
        Colonne 4 = Entreprise
        Colonne 5 = TypE
        Colonne 6 = Date Facture
        Colonne 7 = Mois
        Colonne 8 = BudgetImputation
        Colonne 9 = Montant
        Colonne 10 = DateTravaux

        J'aimerais avoir une macro exportant des données dans une nouvelle feuiille.
        Les données répondent à des critères choisis par le biais d'un formulaire
        par exemple :
        export des données dont
        Mois = 11
        Type = "M"
        Montant > 5

        Merci beaucoup pour votre aide et vos explications
        1. Voici comment je ferai. Vous ouvrez une nouvelle page sur Excel, ensuite vous ouvrez la page sur laquelle se trouve toutes vos colonnes, vous sélectionnez tout. Vous faites édition, copier, ensuite vous fermez la page en répondant NON au modification, lorsque vous êtes sur la page vierge, vous faites édition coller... Voilà moi je faisais comme cela pour les notes trimestrielles avec des coefficients. Bonsoir Courage
          dorotheejeanne
          1. Contributeur
            Bonjour,

            Juste pour confirmer ce que dit eve, pas la peine de vba.
            Un filtre automatique et si nécessaire un copier/coller dans une autre feuille.
            eric
            1. Bonjour,

              un grand merci pour vos réponses cependant, je sais utilisé les fonctions de base d'excel, c'est à dire mettre des filtres auto puis sélectionner ma plage pour copier coller dans une nouvelle feuille.

              Cependant, j'aimerais que cette tache récurrente soit automatiser par une macro.

              L'utilisation de filtre etc ne répond pas à mes critères... merci pour votre aide
              1. Bon il m'a fallu du temps mais j'ai réussi avec de la bidouille heuuu je suis débutant j'ai au du mal ...
                il me reste à supprimer les lignes vides dans la feuille EXPORT puis à triater l'info exporter par choix de l'utilisateur moi entre autre
                Sub xxxxx()

                Call zz

                Dim c As Range

                Call blanc

                For Each c In Range("Mois")
                c.Select
                Select Case c
                Case Is = 11
                Call Bleu
                Case Is = 12
                Call vert
                End Select
                Next

                'Création d'une nouvelle feuille que l'on nomme EXPORT
                Sheets.Add
                ActiveSheet.Name = "EXPORT"

                Sheets("sstraitance").Select
                Call Copie
                Sheets("feuil1").Select
                Rows(2).Select
                Selection.Copy
                Sheets("EXPORT").Select
                Cells(1, 1).Select
                ActiveCell.PasteSpecial
                Sheets("feuil1").Select
                Cells(1, 1).Activate

                End Sub

                Sub blanc()
                Range("Mois").Interior.ColorIndex = xlNone
                Range("Mois").Font.Bold = False
                End Sub

                Sub vert()
                With Selection.Interior
                .ColorIndex = 42
                .Pattern = xlSolid
                End With
                End Sub
                Sub Bleu()
                With Selection.Interior
                .ColorIndex = 33
                .Pattern = xlSolid
                End With
                End Sub
                Sub zz()

                Range("DONNEE").Select
                Selection.Sort Key1:=Range("E3"), Order1:=xlDescending, Key2:=Range("g3") _
                , Order2:=xlDescending, Key3:=Range("d3") _
                , Order3:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
                False, Orientation:=xlTopToBottom
                End Sub
                Sub Copie()

                Dim d As Range
                Dim Ligne As Long

                'Selection des données de façon optimiser car repere derniere cellule active

                ActiveCell.SpecialCells(xlLastCell).Select
                Range(Selection, Cells(1)).Select

                For Each d In Selection.Rows
                Ligne = d.Row

                If d.Cells(1, 7).Value = 11 Then
                d.Copy
                Sheets("EXPORT").Select
                Cells(Ligne, 1).Select
                Selection.PasteSpecial
                End If
                Next d

                End Sub