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 :

Pb défilement feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Par défaut Pb défilement feuille
    Bonjour voici ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub blabla (param) 
    for j=1 to sheet.count
    effectue une recherche pour trouver un élément qui peut-être dans n'importe quelle feuille, si tu trouve, exit function
    next j
    En fait, chaque sheet est un mois de 2009, et dans chaque, il y a des éléments, chacun possédant un identificateur unique. Je fais une recherche sur cet identificateur.
    Mon problème, que je n'avais pas remarqué, c'est que quand l'élément n'existe pas dans aucune des feuilles, ben j prends les valeurs suivantes : 1,2,3,1,2,3,1,2,3,1,2,3... Pour l'instant, je bosse sur 3 mois, donc 3 feuilles. Donc je ne comprends pas pourquoi à la fin cela ne s'arrête pas .
    Help, i need somebody, Help !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour

    tout d'abord, sheet.count?????

    plutôt :


    et ensuite, pour pouvoir t'aider, merci de remplacer :

    effectue une recherche pour trouver un élément qui peut-être dans n'importe quelle feuille, si tu trouve, exit function
    par le code que tu utilises....

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ident = moncritère        
     
    For j = 1 To Sheets.Count
                Sheets(j).Activate
                Cells(1, 3).Select: Selection.End(xlDown).Select '3 car c'est la seule colonne qui sera tjrs pleine
                nbLigne = Selection.Row
                For i = 2 To nbLigne
                    If Cells(i, 1).Value = ident 
                        ActiveWorkbook.Sheets(j).Rows(i).
                        rechercheById.nbLigne = nbLigne
                        Exit Function
                    End If
                Next i
            Next j
    J'ai pas mal réduit la chose (documents professionnels oblige) , mais le principal est là.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    je n'ai pas compris le traitement à effectuer si tu trouves la correspondance, mais tu peux effectuer la recherche ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ident = moncritère
    For j = 1 To Sheets.Count
        With Sheets(j)
            Set c = .Columns(3).Find(ident)
                If Not c Is Nothing Then
                    'ton code
                    Exit Function
                End If
        End With
    Next j

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 58
    Par défaut
    Je supprime la ligne quand je trouve. Le .delete a été malencontreusement supprimé.
    Mais ça n'ira pas ton bout de code.

    Jvais refléchir à ton bout de code, j'ai pas l'habitude d'utiliser find... D'habitude, je regarde en xldown, et je tes un à un.
    Niveau traitement, lequel est le plus rapide ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Re-,

    j'adore ces certitudes, sans même avoir testé....

    Mais ça n'ira pas ton bout de code.
    La méthode Find est bien plus rapide...

    Risques-tu de rencontrer plusieurs fois ton critère de recherche dans la même feuille?

Discussions similaires

  1. [XL-2007] Figer Défilement feuille excel
    Par cathodique dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/01/2014, 18h47
  2. [XL-2007] Boucles For Each Next: problème de défilement des feuilles avec lenteur d'exécution
    Par camelia.w dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/12/2011, 20h08
  3. curseur de la barre de défilement horizontal - feuille EXCEL
    Par cati_78 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2008, 21h00
  4. bouton d'appel d'une macro dans une feuille excel avec défilement
    Par fabrice44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/01/2008, 15h30

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