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 :

Copier vers une autre feuille des données filtrées [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut Copier vers une autre feuille des données filtrées
    Bonjour,

    J'ai un petit problème dans la réalisation d'un fichier Excel, je dois filtrer des données selon les choix de l'utilisateur et celui ci doit travailler ensuite dessus(génération de graphique, comparaison avec d'autres données...). Mon système de filtre est fonctionnel mais pour rendre le travail sur les données plus simples et éviter tous problèmes de modification sur les données de base, j'aimerais extraire les données répondant aux filtres vers une feuille annexes dans le même classeur.

    Et c'est la que ça coince, je ne sait pas comment faire pour copier uniquement les données filtrées afin de les mettre dans mon autre feuille. Je vous met le bout de code avec les filtres.

    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
    Private Sub Rechercher_Click()
     
            texte = ValeurRecherche 'On affecte a texte la valeur rentré par l'utilisateur dans le textBox
     
     
            If ListeChamp = "Nom" Then
     
                Range("A1").AutoFilter Field:=1, Criteria1:="*" & texte & "*"
     
     
     
            ElseIf ListeChamp = "OTP" Then
     
                Range("D1").AutoFilter Field:=4, Criteria1:="*" & texte & "*"
     
            ElseIf ListeChamp = "Projet" Then
     
            Range("E1").AutoFilter Field:=5, Criteria1:="*" & texte & "*"
     
            Else
                Dim retour As Long
     
                retour = MsgBox(prompt:="Veuillez renseigner le champ où rechercer les informations", Buttons:=vbOKOnly)
     
            End If
     
        End Sub



    Je vous remercie d'avance pour votre aide,

    Thomas

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    exemple ici

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut
    Merci pour la réponse rapide, mes données se copient bien vers une autre feuille

    J'ai un autre problème, j'aimerais comparé ce que rentre l'utilisateur dans un textBox avec plusieurs cellules d'une feuille (Juste pour faire un simple système de connexion avec plusieurs compte), je ne sais pas trop comment m'y prendre enfaite. J'ai essaye divers choses mais aucune ne fonctionne

    Merci pour vos réponse

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    On aimerait bien voir ces diverses choses pour corriger, orienter, etc …

  5. #5
    Membre expérimenté
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 120
    Par défaut
    Bonjour,

    Mon idée principale était de mettre les données de ma feuille dans un tableau pour ensuite pouvoir comparer avec mes textBox. L'erreur pour le moment est : "L'indice n'appartient pas à la sélection.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Public Login As String
    Public mdp As String
     
    Public Sub estAutorise(TextBoxLogin, TextBoxMDP)
     
        Dim tab_login(29) As String
        Dim compteur As Integer
     
     
        'Cette boucle remplit un tableau de String avec les login des utilisateurs, cela va nous servir pour tester si le login rentré est présent dans le tableau
        For i = 2 To 30
     
        tab_login(i) = Workbooks(Pointage).Worksheet(User).Range("A" & i + 1)
     
        Next i
     
     
        Dim tab_mdp(29) As String
     
        For j = 1 To 30
     
        tab_mdp(j) = Workbooks(Pointage).Worksheet(User).Range("B" & j + 1)
     
        Next j
     
        compteur = 0
     
            While compteur < 30
     
            If TextBoxLogin = tab_login(compteur) & TextBoxMDP = tab_mdp(compteur) Then
     
                Workbooks(Pointage).Worksheet(User).Visible = xlSheetVeryHidden
                Workbooks(Pointage).Worksheet(Feuil2).Visible = xlSheetVeryHidden
     
            Else
                Dim retour As Long
                retour = MsgBox(prompt:="Le login ou le mot de passe est incorrect", Buttons:=vbOKOnly)
     
                End If
     
     
     
     
    End Sub

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    ....L'erreur pour le moment est : "L'indice n'appartient pas à la sélection.
    Il n'est pas inintéressant de signaler la ligne où à lieu cette erreur.
    En ligne 13 de ta procédure je vois déjà une chance d'avoir une erreur de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab_login(i) = Workbooks(Pointage).Worksheet(User).Range("A" & i + 1)
    A moins d'être publique mais tu ne le signales pas, la variable User n'étant pas déclarée et encore moins initialisée elle a donc par défaut une valeur nulle et WorkSheet(0) ou WorkSheet("") provoque inévitablement une erreur
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/07/2013, 10h32
  2. [XL-2003] Copier automatiquement des valeurs vers une autre feuille
    Par Rabiry dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 24/01/2013, 08h31
  3. [XL-2007] Copier des données d'une feuille vers une autre feuille
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/12/2011, 12h08
  4. [XL-2007] Copier vers une autre feuille avec la même largeur de colonne
    Par apdf1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/11/2011, 21h35
  5. copier des cellule d'une feuille vers une autre feuille
    Par DIDIDIDA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2008, 12h13

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