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 :

Masquer / démasquer des lignes sur critère.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut Masquer / démasquer des lignes sur critère.
    Bonjour à tous,
    J'ai un petit problème à destination des spécialistes en VBA (voir fichier joint). Si une âme charitable pouvait m'aider, je lui en serait très reconnaissant car je débute en VBA et j'en suis à la page 41 de "Programmation VBA pour Excel 2007 pour les nuls" et mon projet devra être terminé avant la fin du livre. Je vois la logique, mais pas la syntaxe.
    A votre bon coeur.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    Bonsoir,
    J'avais mis ce post dans la partie Excel, mais le modérateur l'a déplacé en me disant que j'aurai plus de réponses dans la partie VBA. C'est raté.

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par marc56 Voir le message
    C'est raté.
    Ce qui est raté, c'est la manière dont tu présentes ton problème.

    Montre-nous un code sur lequel tu butes plutôt que de nous jeter ton fichier sans autre explication.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut re
    tu crée un bouton masquer ou tu ecris ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim i as integer 
    for i = 6 to 21 
    if range("C" & i).value = "Archivé" then
    rows(i).hidden = true
    end if 
    next i
    ensuite tu crées le bouton afficher
    ou tu écris :sur ton userform1, tu mets un combobox1 ou tu ecris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim i as integer 
    for i = 6 to 21 
    with combobox1
    .additem i
    end with
    next i


    tu crées aussis un bouton sur le userform 1 ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim i as integer 
    for i = 6 to 21 
    if combobox1.value= i then
    rows(i).hidden = false
    end if 
    next i
    voila
    @+

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    Merci Tomy7, ta réponse me met du baume au cœur.
    Comme je l'ai déjà dit, je suis novice en VBA et il me faut aller doucement.
    J'ai intégré ton code dans mon fichier exemple (voir fichier joint), mais à la place d'un userform, j'ai mis une inputbox car je l'utilisais dans d'autres cas.
    - le code du bouton "Masquer" fonctionne bien, mais dans mon fichier exemple, je n'avais que quelques lignes. En réalité j'en ai bien plus. Comment écrire la boucle qui doit commencer par lire la ligne 6, mais qui doit s'arrêter quand la première cellule A est vide (fin des enregistrements). Si tu peux commenter ton code, ce serait encore mieux. A l'avance, merci.

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonsoir,

    Si je comprend bien ta question, ça devrait donner un truc du genre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 6 To Range("A65535").End(xlUp).Row
    ...
    ...
    ...
    Next
    Je sais...certains viendront me dire (juste pour m'embêter ) que la ligne 65535 n'est plus d'actualité pour Excel 2007...je suis d'accord mé bon, avant de devoir utiliser la 65536ème ligne, ya de la marge

  7. #7
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Citation Envoyé par marc56 Voir le message
    Bonjour à tous,
    J'ai un petit problème à destination des spécialistes en VBA (voir fichier joint). Si une âme charitable pouvait m'aider, je lui en serait très reconnaissant car je débute en VBA et j'en suis à la page 41 de "Programmation VBA pour Excel 2007 pour les nuls" et mon projet devra être terminé avant la fin du livre. Je vois la logique, mais pas la syntaxe.
    A votre bon coeur.
    Bonsoir
    car je débute en VBA et j'en suis à la page 41 de "Programmation VBA pour Excel 2007 pour les nuls"
    Sincèrement je n'ai rien compris membre éclairé avec une étoile et demi et 300 messages
    !!!!!!!!!!!!!!!!!
    Bonne soirée

  8. #8
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bon...bon...rassemblons nos neurones

    Marc tu parles de 2 choses différentes, tu veux que la recherche s'arrête lorsqu'elle rencontre une ligne vide ou lorsqu'elle rencontre un n° de dossier supérieur ? (ou les deux pourquoi pas)

    Question subsidiaire : est-il possible d'avoir une ligne vide entre 2 n° de dossier ?

    Dernière question, as-tu disons...plus de 1000 lignes contenant des n° de dossier ? Sinon tu peux tranquillement le laisser mouliner parce que entre une fraction de seconde et un quart de fraction de seconde la différence est minime.

  9. #9
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 117
    Par défaut
    Re
    Sorry, je l'avais fait a chaud ... faut juste changer la declaration de i en Long


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Afficher()
    Dim No_Dos As String
    Dim i As Long
    ' Afficher toutes les lignes d'un dossier
    'Demander le numéro de dossier à afficher, "no_dos" prend la valeur saisie
    No_Dos = InputBox("Entrer le numéro de dossier à afficher, puis cliquer sur OK.")
     
        For i = 6 To Rows.Count
            If Range("A" & i).Text = "" Then Exit For
            If Range("A" & i).Text = No_Dos Then Rows(i).Hidden = False
        Next i
    End Sub
    Bonne nuit
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  10. #10
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Donc mes excuses sincères marc56.
    Bonne soirée.
    Abed_H

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    Exacte, au départ je pensais sortir à la première ligne vide, mais c'est en rédigeant une réponse que je me suis dit : pourquoi aller jusqu'à la première ligne vide si je peux sortir avant.
    Pour le nombre de lignes, j'en ai un peu moins de 2000 pour le moment, mais on ne sait jamais.
    Je n'ai jamais de ligne vide, elles sont toutes remplies.
    J'ai testé le premier code de Qwazerty dans mon fichier test et il fonctionne, mais quand je l'intègre dans mon fichier réel (4,5Mo), je n'obtiens pas l'affichage du n° de dossier demandé???

    Je teste ton nouveau code.

    Il a l'air de fonctionner, mais je vais le tester encore. Pour le non affichage du dossier demandé, je crois avoir trouvé, ma colonne A n'était plus ordonnée suite à un trie sur une autre colonne.
    Je ne mets pas encore "Résolu" pour le "cazou".

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    Le cazou est arrivé (voir fichiers joints)

  13. #13
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Juste pour le fun, et si on faisait un truc du genre...(voir fichier joint)

    Pièce jointe 26288

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

Discussions similaires

  1. Masquer des lignes sur condition
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 06/03/2008, 02h11
  2. Supprimer des lignes sur un test de date
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/11/2007, 17h37
  3. Excel-copier des lignes sur une autre feuille
    Par petecul dans le forum Excel
    Réponses: 7
    Dernier message: 13/09/2007, 02h56
  4. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 20h03

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