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 :

Nombre de recherche variable.


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
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut Nombre de recherche variable.
    Bonjour,
    Dans Feuil1, j'aimerais chercher un mot clé : "Salaire", je pourrait avoir de 1 à 15 résultats. J'aimerais récupérer l'information qui se trouve à la cellule suivante : cells(numéro de la ligne de la cellule trouvée + 5 , 1) et le mettre dans sheets("Feuil2").Cells(5,9) et ainsi de suite, et ce, pour chaque résultat trouvé (comme j'ai dit précedement: une boucle avec to variable).
    J'ai fait ce code par "record":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cells.Find(What:="Salaire", After:=ActiveCell _
            , LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
    Merci!

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Regarde l'aide sur la méthode Find, tu aura là bas un exemple qui boucle sur toutes les occurrences du mot cherché

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Par défaut
    Salut, j'ai essayé le code dans l'exemple. Mais je crois que je bloque vraiment!
    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
    Sub trouve()
     
    With Worksheets(1).Range("a1:a500")
        Set c = .Find("Salaire", LookIn:=xlValues)
        Set fc = .FindNext(after:=c)
        If Not c Is Nothing Then
            firstAddress = c.Address
     
          For i = 13 To fc + 15
            Do
     
                Cells(11, 5) = c.Value
     
                        Cells(i, 6) = Cells(Right(fc.Address, 2) + 4, 3).Value
     
            Loop While Not c Is Nothing And c.Address <> firstAddress
         Next i
        End If
    End With
     
    End Sub

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    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
    Sub Trouve()
    Dim FirstAddress As String
    Dim LastLig As Long
    Dim i As Integer
    Dim c As Range
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
     
        With .Range("A1:A" & LastLig)
            Set c = .Find("Salaire", LookIn:=xlValues, lookat:=xlPart)
            If Not c Is Nothing Then
                FirstAddress = c.Address
                Do
                    c.Offset(5, 0).Copy Worksheets("Feuil2").Cells(5 + i, 9)
                    i = i + 1
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> FirstAddress
            End If
        End With
    End With
    End Sub

Discussions similaires

  1. [CSS][HTML] Nombre d'onglets variable
    Par poah dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 02/12/2005, 09h30
  2. Réponses: 4
    Dernier message: 31/10/2005, 18h48
  3. Macros et nombre d'arguments variable
    Par kaisse dans le forum C
    Réponses: 7
    Dernier message: 28/07/2005, 11h10
  4. Nombre d'arguments variable
    Par gege2061 dans le forum C
    Réponses: 7
    Dernier message: 05/08/2004, 16h43
  5. Réponses: 5
    Dernier message: 25/11/2003, 10h41

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