• Initiateur de la discussion Initiateur de la discussion cloclo57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cloclo57

XLDnaute Junior
Bonsoir a tous

Je rencontre un petit soucis dans un Userform
Comment selectionner 2 ou 3 zone différentes sur le meme feuille

Private Sub CommandButton1_Click()
Else

'dans la fonction find est il possible de selectionner deux zone sur la meme 'feuille ci dessous par exemple ( "E5:E35 " et "N5:N35")


With Worksheets(1).Range("E5:dc35")
Set c = .Find(medecin, LookIn:=xlValues, MatchCase:=True)
If Not c Is Nothing Then
firstAddress = c.Address
Do

Range("E50").Value = c.Value
Range("F50").Value = c.Offset(0, 1).Value

Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
 
Re : Find sur 2 Zones

Bonsoir,

essaye comme ceci:

With Worksheets(1).union(range("E5:E35"),range("N5:N35"))

Set c = .Find(medecin, LookIn:=xlValues, MatchCase:=True)
If Not c Is Nothing Then
firstAddress = c.Address
Do

Range("E50").Value = c.Value
Range("F50").Value = c.Offset(0, 1).Value

Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
 
Re : Find sur 2 Zones

Tout d'abord Bonjour et merci de ton aide
La ligne ci dessous me donne une erreur , pourquoi,

With Worksheets(1).Union(Range("E5:E35"), Range("N5:N35"))

Set c = .Find(medecin, LookIn:=xlValues, MatchCase:=True)
If Not c Is Nothing Then
firstAddress = c.Address
Do

Range("E50").Value = c.Value
Range("F50").Value = c.Offset(0, 1).Value


Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

Merci A+
 
Re : Find sur 2 Zones

Bonsoir cloclo57, skoobi

Test ceci :

Code:
.../...
Dim Plg As Range, C As Range, K As Integer
With Sheets("Feuil2")
 Set Plg = Union(Range("E5:E35"), Range("N5:N35"))
 Set C = Plg.Find("medecin", LookIn:=xlValues, MatchCase:=True)
    If Not C Is Nothing Then
      firstAddress = C.Address
      K = 0
        Do
            Range("E" & 50 + K).Value = C.Value
            Range("F" & 50 + K).Value = C.Offset(0, 1).Value
            K = K + 1
            Set C = Plg.FindNext(C)
        Loop While Not C Is Nothing And C.Address <> firstAddress
    End If
End With

'Set Plg = Nothing
'Set C = Nothing
.../...

J'ai rajouté la variable K car tu utilises FindNext. Avec FindNext si il y a plusieurs fois le mot "medecin" les cellules E50 et F50 prendront les valeurs du dernier "medecin" de la liste. (C'est peut-être ce que tu cherches d'ailleurs🙂). Donc c'est au cas où tu voudrais toutes les valeurs de "medecin".

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
224
Réponses
2
Affichages
154
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
482
Réponses
4
Affichages
461
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
174
  • Question Question
Microsoft 365 modifier un code
Réponses
1
Affichages
464
Réponses
12
Affichages
989
Retour