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 :

comparaison entre zone de liste déroulante et titre de colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut comparaison entre zone de liste déroulante et titre de colonne
    bonjour,

    j'amerai faire une comparaison entre Choix(zone de liste déroulante) et feuil2.cells[B4:I4]

    ensuite afficher la colonne avec les titres sur une ligne feuil3.cells [A40]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
        Dim Choix As Variant, Sh As Worksheet, Deb As Long, Ligne As Long
        Set Sh = Sheets("feuille résumé")
        Sh.Range("12:10000").Clear
        Choix = Application.Index(Sh.[P:P], Sh.Range("AA1"), 1)
    '   traitement de Feuil3
        With Sheets("Feuil3")
        .[A1:I3].Copy Sh.[A36]
            For i = B4:I4                                           '   comparaison entre Choix et .cells[B4:I4] ??
                If .Cells(B4 ou jusque I4) = Choix Then
                    .Cells(i, 1).EntireColonne.Copy Sh.[A40]       '   ensuite afficher la colonne sur une ligne sh.cells [A40] ??
                End If
            Next i




    et comment puis-je faire pour agrandir la taille d’écriture dans la zone de liste déroulante?


    merci de votre aide!

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Pour boucler sur chaque cellule, le code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Cell As Range
      ...
      ...
       For Each Cell In .[B4:I4]
    Le test qui suit dans ton code n'a me semble-t-il pas de sens vu que la plage B6:I8 "sort" de B4:I4.

    Mais si tu veux vraiment tester cette plage, que veux tu dire par
    If .Cells(B6 ou jusque I8) = Choix
    Chaque cellule de B6 à I8 doit être testé ou il suffit qu'une de ces cellules = choix

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    désole c'est une erreur en recopiant les cellules c'est bien comparer le choix aux cellule B4 à I4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Sheets("Feuil3")
    '   comparaison entre Choix et .cells[B6:I8]
            .[A1:I3].Copy Sh.[A36]
            For Each Cell In .[B4:I4]                                         '   comparaison entre Choix et .cells[B4:I4] ??
                If Cell = Choix Then
                    .Cells(i, 1).EntireColonne.Copy Sh.[A40]       '   ensuite afficher la colonne sur une ligne sh.cells [A40] ??
                End If
            Next

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Donc le code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Cell In .[B4:I4]
      if Choix = Cell.Value then
        .Cells(i, 1).EntireColonne.Copy Sh.[A40]

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    mais a quoi correspond (i, 1) maintenant vu que l'in ne l'utilise plus dans la boucle For?

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Salut,


    Defluc aura peut être une meilleur solution mais en attendant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Sheets("Feuil3")
            For i = 2 To 9
                If .Cells(4, i).Formula = Choix Then
                    .Cells(4, i).EntireColonne.Copy Sh.[A40]
                End If
            Next i

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    merci je viens de tester mais il me donne une erreur 438 sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(4, i).EntireColonne.Copy Sh.[A40]

  8. #8
    Membre actif
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 144
    Points : 223
    Points
    223
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(4, i).EntireColumn.Copy Sh.[A40]
    EntireColumn, c'est de l'anglo-saxon !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    ha oui ca fonctionne beaucoup mieux ! lol

    par contre toujours une erreur 1004
    le collage ne peut pas être effectué, car les zones copier et de collage sont de taille différentes.

    pourtant je n'ai pas de cellule fusionnée ou autre

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Bien vu, j'avais pas vérifié jusque là ;-)

    Tu as besoin de copier toute ta colonne ou juste quelques cellules?

  11. #11
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Je ne peux plus suivre, vous allez trop vite les gars.

    Ceci dit Mea Culpa, comme i n'est plus utilisé dans mon code, il y a une fameuse erreur.
    Et il y en a une deuxième, c'est qu'il est impossible de copier une colonne entière en indiquant une cellule comme destination.

    Alors, il faut choisir : soit copier une plage vers la cellule A40, soit copier la colonne entière en colonne A comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      if Choix = Cell.Value then
        Cell.EntireColonne.Copy Sh.Columns(1)

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    voila le tableau!
    Nom : Capture.JPG
Affichages : 364
Taille : 39,2 Ko

    en fait il faudrait afficher la colonne A avec les mois et en fonction du choix avoir la colonne qui correspond en colonne B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Sheets("Feuil3")
    '   comparaison entre Choix et .cells[B6:I8]
            .[A1:I3].Copy Sh.[A55]
              For Each Cell In .[B4:I4]
                if Choix = Cell.Value then
                   Cell.EntireColumn.Copy Sh.Columns(1)
                End If
            Next i

  13. #13
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Je ne saisis pas mais avec l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                   Cell.EntireColumn.Copy Sh.Columns(2)
    La colonne comportant Cell sera copiée en B (colonne 2) de la feuille Sh.

    Essaie, tu verras bien si ça correspond à ce que tu souhaites et si ce n'est pas le cas, il suffit d'adapter.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 38
    Points : 10
    Points
    10
    Par défaut
    ça fonctionne bien par contre il coller le tableau au en B4 moi j'aimerai qu'il soit en B60 vu qu'au dessus j'ai d'autres informations! ou dois-je lui donner cette instruction?

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/02/2015, 20h54
  2. Zone de liste déroulante à comparer avec titre colonne
    Par myayo001 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2014, 16h46
  3. Dépendance entre zone de listes déroulantes
    Par aurore1008 dans le forum IHM
    Réponses: 33
    Dernier message: 16/06/2008, 10h21
  4. Réponses: 3
    Dernier message: 24/02/2007, 15h21
  5. Zone de liste déroulante
    Par noname_971 dans le forum Access
    Réponses: 9
    Dernier message: 10/09/2005, 21h16

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