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 :

Méthode find sensible aux cellules fusionnées?


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Par défaut Méthode find sensible aux cellules fusionnées?
    Bonsoir,
    j'utilise ce code pour trouver toutes les cellules d'une feuille qui contiennent "Sous Total", et mémoriser les indices des lignes dans un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    iLSTT = 0
    With FExcel.Range(FExcel.Cells(1, 1), FExcel.Cells(dL, dC))
         Set PlageSTT = FExcel.Range(FExcel.Cells(1, 1), FExcel.Cells(dL, dC)).Find(what:="Sous Total", lookin:= xlvalues)
         If Not PlageSTT Is Nothing Then
              FirstAddress = PlageSTT.Address
              Do
                   Set PlageSTT = PlageSTT.FindNext(PlageSTT)
                   ReDim Preserve LSTT(iLSTT)
                   LSTT(iLSTT) = PlageSTT.Row
                   iLSTT = iLSTT + 1
              Loop While Not PlageSTT Is Nothing And PlageSTT.Address <> FirstAddress
         End If
    End With
    Je n'arrive qu'à trouver la première cellule contenant le critère "Sous Total".
    dL et dC sont les dernières lignes et colonnes du tableau. J'ai essayé avec le range(FExcel.cells(1,1)) mais ça marche pas non plus.
    Cela viendrait-il des cellules fusionnées?
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Par défaut
    J'ai trouvé!
    Seulement je suis vraiment pas convaincu de l'efficacité du .findnext(laplagededépart)
    Ca ça marche nettement mieux:
    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
     
    iLSTT = 0
    With FExcel.Range(FExcel.Cells(1, 1), FExcel.Cells(65536, 256))
         Set PlageSTT = FExcel.Range(FExcel.Cells(1, 1), FExcel.Cells(65536, 256)).Find(what:="Sous total", LookIn:=xlValues, searchorder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True) ', searchorder:=xlByColumns)
         If Not PlageSTT Is Nothing Then
              FirstAddress = PlageSTT.Address
              ReDim Preserve LSTT(iLSTT)
              LSTT(iLSTT) = PlageSTT.Row
              iLSTT = iLSTT + 1
              Do
                   Set cell = FExcel.Range(PlageSTT.Address).Offset(rowoffset:=1, columnoffset:=0)
                   Set PlageSTT = cell.Find(what:="Sous total", LookIn:=xlValues, searchorder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
                   ReDim Preserve LSTT(iLSTT)
                   LSTT(iLSTT) = PlageSTT.Row
                   iLSTT = iLSTT + 1
              Loop While Not PlageSTT Is Nothing And PlageSTT.Address <> FirstAddress
         End If
    End With
    ReDim Preserve LSTT(iLSTT - 2)
    Si ça peut éviter quelque galère à quelqu'un...

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

Discussions similaires

  1. Méthode FIND, recherche avant une cellule donnée
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/02/2012, 14h19
  2. Réponses: 6
    Dernier message: 07/07/2010, 11h42
  3. Réponses: 5
    Dernier message: 30/06/2009, 09h04
  4. Find et cellules fusionnées
    Par DeaD78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/08/2008, 17h04
  5. find ignoré dans les cellules fusionnées
    Par onejock dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 23/06/2008, 00h55

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