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 :

Problème de boucle avec un find


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Problème de boucle avec un find
    Bonjour tout le monde.
    J'ai un gros probleme, je fais une recherche sur un mot (Sem) pour les encadrer mais le pronleme c'est qu'il ne trouve que la premiere et pas les autres. J'ai essayer beaucoup de chose et rien ne marche.
    Voici le code en question:
    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
     
        For k = 3 To 40
        Cells.Find(What:="Sem ").Select
     
        Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 9)).Select
     
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThick
            Selection.Font.Bold = True
        End With
        With Selection.Borders(xlEdgeBottom)
           .LineStyle = xlContinuous
           .Weight = xlThick
        End With
     
        Next k
    J'attend vos sugestion
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    A quoi il te sert ton k ???
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    le k sert a parcourir le tableau

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    pourquoi il n'apparait pas dans ton code ??
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Oui effectivement il n'est pas dans le code, mais je ne sais pas comment faire en fait. En fait il cherche la premiere cellule qui contient "sem" et la boucle s'arrete.

  6. #6
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    Sub Macro1()
     
    '
    ' Macro1 Macro
    ' Macro enregistrée le 21/06/2007 par MCX
    '
     
    '
        Dim PremCell As Range
        Dim CellTrouve As Range
     
        'recherche la premiere fois
        Set PremCell = Cells.Find(What:="Sem", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
     
        With Range(Cells(CellTrouve.Row, 1), Cells(CellTrouve.Row, 9))
            With .Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlThick
                Selection.Font.Bold = True
            End With
            With .Borders(xlEdgeBottom)
               .LineStyle = xlContinuous
               .Weight = xlThick
            End With
        End With
     
        'Boucle jusqu'à ce qu'on soit sur la premiere cellule trouvée
        Set CellTrouve = Cells.FindNext(After:=PremCell)
        While CellTrouve.Row <> PremCell.Row Or CellTrouve.Column <> PremCell.Column
            With Range(Cells(CellTrouve.Row, 1), Cells(CellTrouve.Row, 9))
                With .Borders(xlEdgeTop)
                    .LineStyle = xlContinuous
                    .Weight = xlThick
                    Selection.Font.Bold = True
                End With
                With .Borders(xlEdgeBottom)
                   .LineStyle = xlContinuous
                   .Weight = xlThick
                End With
            End With
        Set CellTrouve = Cells.FindNext(After:=CellTrouve)
        Wend
    End Sub
    EDIT : Mise à jour du macro

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    est-ce que ta cellule contient uniquement "sem" ou il y a quelque chose d'autre du style "sem 42" ?
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Oui les semaine sont numeroté.
    ex:
    Sem 01
    Sem 02

  9. #9
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    PS bout de code mis a jour apres un test ^^

    si ca fonctionne bien comme tu le veux dis le moi

    Edit oops je viens de le relir il faut faire un petit changement

    le premier bloc With

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        With Range(Cells(PremCell.Row, 1), Cells(PremCell.Row, 9))
            With .Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlThick
                Selection.Font.Bold = True
            End With
            With .Borders(xlEdgeBottom)
               .LineStyle = xlContinuous
               .Weight = xlThick
            End With
        End With

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Ca marche en complement de mon morceau de code, je m'explique ca me trouve toute les semaine sauf la premiere.
    Mais il ya un petit probleme, ca me met toute ma premiere colonne en gras.

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    De plus c'est pas les ligne trouver qui sont en gras, c'est la colonne

  12. #12
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    ouais mais si tu donens les info petit bout par petit bout

    tu veux que la colonne ou il y a une cellule vide soit en gras ?
    parceque selon ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 9)).Select
    tu veux la ligne entre A et I
    ensuite, tu regarde mon code, tu le comprends (il est pas vraiment compliqué) et tu modifies les erreurs que tu avais mis dedans que j'ai volontairement laissé car je ne suis pas la pour faire ton travail.

    sinon tu fait un poste "Je voudrais que vous me fassiez un code qui fait ca ca et ca"

  13. #13
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Je veux que la ligne où il y a le mot "sem" soit encadrer et en gras.

    Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 9)).Select
    C'est pour encadrer la ligne de la colonne A à la colonne I (c'est la taille du tableau)
    C'est exacte, tu n'est pas là pour faire mon travail mais ca fait assez longtemps que je cherche une solution et ca m'a pris la tête.
    En tout cas je te remercie de ton aide.

  14. #14
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    C'est bon ca marche bien, j'ai juste un probleme car il me met la colonne en gras alors que c'est la ligne qui devrait l'être. Je vais chercher ca, merci de ton aide precieuse mordrhim.

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

Discussions similaires

  1. [XL-2007] Problème de Boucles avec feuilles multiples
    Par dmoluc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2012, 19h23
  2. Problème de boucle avec Timer
    Par SandrillonC dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/04/2010, 12h40
  3. [XSLT] Problème de boucle avec for-each
    Par knack8 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/04/2009, 01h42
  4. Problème dans boucle avec matrice et vecteur
    Par lilyla dans le forum MATLAB
    Réponses: 9
    Dernier message: 26/11/2007, 19h45
  5. Problème de boucle avec for
    Par ions dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 20/11/2007, 08h58

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