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 :

findnext et hidden


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut findnext et hidden
    Bonjour à tous,

    je débute dans l'utilisation de vba sous excel et je n'arrive pas a faire ce que je veux.

    Voici ma problématique, je veux créer un bouton masquer/démasquer qui permettra donc de masquer ou demasquer les lignes entières de mes feuillets 2 à 6 en fonction de la valeur contenue dans la colonne K. En faites, si dans Ki j'ai "---" alors je veux masquer la ligne i.

    J'ai réussi à le faire avec une boucle mais je veux le faire avec la fonction find (pour ma culture personnelle).

    J'ai testé le code suivant:

    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
     
    Sub MasquerDemasquer()
     
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
     
     For I = 2 To 6
     
     With Sheets(I)
     .Activate
     .Unprotect Password:="Toto"
     
     Dim c As Range
     Set c = Range("K14:K100")
     
     With c.Find("---")
     
     
        c.EntireRow.Select
        If c.Hidden = True Then
            c.Hidden = False
            Else
            c.Hidden = True
            End If
     
     End With
     
    End With
    Next
        Sheets(1).Activate
        Application.Calculation = xlAutomatic
        Application.ScreenUpdating = True
    End Sub
    Bien sûr cela ne fonctionne pas....

    Quelqu'un peut-il éclairer ma lanterne?

    merci

  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.

    Cela ne peut fonctionner car la méthode Find n'est pas respectée : il manque l'affectation d'une variable objet (ou Range) et le passage de paramètres !

    Voir l'aide de Find appliquée à un Range et son exemple (notamment respecter la structure avec le FindNext) …

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    salut

    bon après avoir fouillé dans l'aide, j'ai testé ceci:

    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
     
    Sub MasquerDemasquer()
     
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
     
     For I = 2 To 6
     With Worksheets(I).Range("K14:K100")
     .Activate
     .Unprotect Password:="Toto"
     
     Set c = .Find("---", LookIn:=xlValues)
     
         If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.EntireRow.Select
                    If c.Hidden = True Then
                    c.Hidden = False
                    Else
                    c.Hidden = True
                    End If
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    Next
        Worksheets(1).Activate
        Application.Calculation = xlAutomatic
        Application.ScreenUpdating = True
    End Sub
    mais j'ai l'erreur 1004 sur le .Activate

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par waspy59 Voir le message

    mais j'ai l'erreur 1004 sur le .Activate
    ben supprime la ligne...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    salut

    tu penses bien que j'ai essayé...

    j'ai viré les lignes
    - .activate
    - .Unprotect Password:="Toto"

    Mais du coup je recupere la même erreur à la ligne "c.EntireRow.Select" et si je la vire, c'est la ligne du dessous en erreur (tjrs la 1004)

    Comprends pas trop où est le soucis

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    il y as combien de feuilles dans ton classeur?

Discussions similaires

  1. [input type hidden] devient nul
    Par Nadine dans le forum ASP
    Réponses: 17
    Dernier message: 25/04/2005, 20h26
  2. Hidden symbol '__dso_handle'
    Par jula dans le forum Linux
    Réponses: 2
    Dernier message: 13/04/2005, 15h51
  3. [Struts]HTML:FORM ET HTML:HIDDEN
    Par zurich dans le forum Struts 1
    Réponses: 6
    Dernier message: 07/02/2005, 23h30
  4. [HTML] faire du hidden visible en html
    Par jefferson dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/12/2004, 18h05
  5. [Struts][javascript]Probleme de 'id' dans un <html:hidden
    Par FreshVic dans le forum Struts 1
    Réponses: 5
    Dernier message: 11/02/2004, 10h57

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