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 :

sélection de plusieurs cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut sélection de plusieurs cellules
    Bonjour,

    Voila j'aimerais créer un code qui me cherche une valeur redondante dans une colonne et que à chaque valeur trouvé il me souligne la ligne.
    Mais voilà je bloc un peu là.

    Je suis sur un code mais je n'arrive plus à avancer...

    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
    Private Sub CommandButton1_click()
     
    With Worksheets("Base").Range("a1:a500")
        '2190 c'est la valeur que je recherche dans la colonne allant de la plage A1:A500
        Set c = .Find(2190, LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
     
               c.Select
               'J'aimerais qu'il garde en mémoire cette sélection
               'puis qu'il sélectionne la suivante, ainsi de suite....
               'tant que il n'a pas terminé de trouver des valeur = 2190
               Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    End Sub

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Tu peux comme ceci par exemple:
    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
    Private Sub CommandButton1_click()
        Dim c As Range
        Dim firstAddress As String, Cellules As String
     
        With Worksheets("Base").Range("a1:a500")
            '2190 c'est la valeur que je recherche dans la colonne allant de la plage A1:A500
            Set c = .Find(2190, LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                   Cellules = Cellules & "," & c.Address
                   Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> firstAddress
     
                If Cellules <> "" Then
                    .Range(Mid(Cellules, 2)).Select
                End If
            End If
        End With
    End Sub

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut

    je préfèrerais personnellement, dans un tel cas, travailler avec un tableau dynamique, plutôt qu'ace Find
    inspire-toi de ceci ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_click()
     tabl = Worksheets("Base").Range("a1:a500").Value
      Dim masel As Range
      For i = 1 To UBound(tabl)
        If tabl(i, 1) = 2190 Then
          If masel Is Nothing Then Set masel = Worksheets("Feuil1").Range("a" & i) Else Set masel = Application.Union(masel, Worksheets("Feuil1").Range("a" & i))
        End If
      Next
      If Not masel Is Nothing Then masel.Select
      set masel = nothing
    End Sub

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut
    Bon je suis super content d'avoir vos réponse sauf que j'ai dans vos deux codes un soucis. lorsque j'essaye de l'appliquer j'ai une erreur sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                If Cellules <> "" Then
                    .Range(Mid(Cellules, 2)).Select
                End If
    La méthode select de la classe Range a échoué ????

    D'où ça vient.

    Ce problème est récurant et je sais jamais la vrai cause.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut
    Ne vous cassé plus la tête je viens de trouver ma base de donnée commençait à A2 et pas à A1.

    Merci les deux marche bien et je les garde sous le coude.
    Je sais pas la meilleur solution mais en tout cas ça me permet de lire du code et d'apprendre. Merci

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

Discussions similaires

  1. Bloquer la sélection de plusieurs cellules a la souris
    Par fred_vannes56 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/12/2011, 18h49
  2. [Toutes versions] Problème sélection de plusieur cellule dans un Spreadsheet situer dans une Userform
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/05/2010, 11h57
  3. [WD12] Sélection de plusieurs cellules
    Par kwakly dans le forum WinDev
    Réponses: 3
    Dernier message: 01/07/2008, 17h31
  4. Réponses: 1
    Dernier message: 17/08/2007, 09h09
  5. Réponses: 4
    Dernier message: 02/08/2007, 19h51

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