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 :

Ecrire un texte après une liste filtrée VBA excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Par défaut Ecrire un texte après une liste filtrée VBA excel
    Bonjour à toutes et à tous,

    J'ai crée un classeur qui contient deux feuilles, la première feuille nommée "BD" une base de donnée contenant la liste des étudiants avec leur établissement de scolarisation.
    et dans la même feuille il y a la liste des établissements de scolarisation filtrées sans doublant.
    et la deuxième feuille qui contient le filtre élaboré des étudiants selon leur établissement de scolarisation
    "On choisit l'établissement à partir d'une liste déroulante."

    Voilà mon macro que j'ai créé dans la feuille de filtrage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Address = "$F$5" Then
        Set f = Sheets("BD")
        f.[A1:F1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=f.[H1], Unique:=True
        f.[H1:H100].Sort Key1:=f.[H2], Order1:=xlAscending, Header:=xlGuess
     End If
    End Sub
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$F$5" Then
         Set f = Sheets("BD")
        f.[A1:F1000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[F4:F5], CopyToRange:=[B13:E13]
      End If
    End Sub
    Je n'arrive pas à ajouter du texte dans la deuxième ligne après la liste filtrée
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Avec ceci peut être si j'ai bien compris ?
    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
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Dim F As Worksheet
     
        If Target.Address = "$F$5" Then
     
            Set F = Sheets("BD")
     
            With F
     
                .[A1:F1000].AdvancedFilter xlFilterCopy, , .[H1], True
                .[H1:H100].Sort .[H2], xlAscending, , , , , , xlGuess
     
                'en colonne A
                .Cells(.Rows.Count, 1).End(xlUp).Offset(2, 0) = "Ma valeur"
     
            End With
     
        End If
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Par défaut
    Bonjour,

    Merci pour votre aide, mais ma valeur s'écrit sur la feuille "liste filtrée"
    Désolée pour ma mauvaise français. Je n'arrive pas à bien expliquer. je vous joint le fichier pour que vous puissiez m'aider.
    Merci une autre fois pour votre aide
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu change dans la cellule E5 et dans ton code c'est F5 ?
    Chez moi le texte s'inscrit bien en colonne A de la feuille "BD" ! Ce qui est normal puisque c'est ce qu'on demande au compilateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With F
        ...
        ...
        .Cells(.Rows.Count, 1).End(xlUp).Offset(2, 0) = "Ma valeur" '<-- le point rattache bien à la variable F qui représente la feuille "BD"
    End With
    Hervé.

  5. #5
    Membre averti
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Par défaut
    Bonjour,
    Merci pour votre aide. Je vais essayer d'expliquer j'espère que vous pouvez me comprendre.
    la feuille "BD" contient la liste des étudiants avec leur établissements de scolarisation.
    - La colonne H contient une liste filtrée sans doublant des établissements de scolarisation qui se trouve dans "la colonne E"
    Nom : 2014-02-17_212524.jpg
Affichages : 495
Taille : 12,2 Ko

    Sur la feuille "liste filtrée" On trouve :
    - La cellule E5 est liste déroulante de liste filtré BD!H2:H9
    Lorsque je choisis une établissement, le macro va faire un filtre des étudiants dans la feuille "BD" et le copie dans feuille "filtre élaboré" dans les cellules A13:D13
    Après la listé filtrée, je veux écrire un texte
    Nom : 2014-02-17_222105.jpg
Affichages : 607
Taille : 58,3 Ko

    Citation Envoyé par Theze Voir le message
    Bonjour,

    Tu change dans la cellule E5 et dans ton code c'est F5 ?
    J'ai décalé la liste filtré de la plage "B13:E13" vers ""A13:D13" c'est un décalage lorsque j'ai traduit mon exemple en français.
    Chez moi le texte s'inscrit bien en colonne A de la feuille "BD" ! Ce qui est normal puisque c'est ce qu'on demande au compilateur :
    Mais je veux que "Ma valeur" s'affiche dans la feuille "liste filtrée" après la liste filtrée B13:E13
    Merci!

  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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le problème est de savoir dans quelle feuille se trouve la procédure événementielle dont tu donnes le code.
    et suivant le cas par exemple
    Comme les données filtrées se font à partir de la plage B13:E13
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     F.[B13].End(xlDown).Offset(2) = "Ma valeur"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [B13].End(xlDown).Offset(2) = "Ma valeur"
    Si la partie filtrée est sur la feuille où est le code de la procédure événementielle il ne faut pas préciser la feuille dans le cas contraire, il faut utiliser la variable objet F qui représente l'autre feuille (du moins je suppose).
    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. Ecrire du texte sur une fenêtre de Jeu vidéo (OSD)
    Par zenway dans le forum DirectX
    Réponses: 7
    Dernier message: 07/03/2009, 14h06
  2. Réponses: 2
    Dernier message: 03/02/2005, 23h42
  3. Pb d'affichage apres une liste déroulante
    Par loic.440 dans le forum ASP
    Réponses: 13
    Dernier message: 19/01/2005, 14h28
  4. [VMR9][D3D9]ecrire un texte sur une surface
    Par drizztfr dans le forum DirectX
    Réponses: 2
    Dernier message: 13/11/2003, 15h06
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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