Par Vba, chercher valeur et sélectionner plage

  • Initiateur de la discussion Initiateur de la discussion jepi67
  • 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 !

J

jepi67

Guest
Bonjour à toutes et à tous,

Qui pourrait donner un petit tuyau pour alimenter la Macreau 🙂 d'un débutant en Vba ?
Dans un tableau B2:K500 j'ai en col B des données 'Nom'; en col E à K, par ligne, une seule valeur 'Nb' dans l'une des col uniquement. Cette valeur 'Nb' me donne le nombre de cells contigüe sur la Feuil2 correspondant à la désignation 'Nom'.
Avec une macro je souhaiterai : en partant d'une sélection quelconque en colonne B sur la Feuil1, trouver sur la même ligne la valeur 'Nb', exploiter cette dernière pour sélectionner la plage contenant la même valeur 'Nom' sur ma Feuil2.
Dans le fichier joint j'ai un début de code qui trouve la cellule sur la Feuil2 et me met le texte en couleur mais je sèche pour le reste.

a+ [file name=Cherch_select.zip size=8331]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cherch_select.zip[/file]

Message édité par: jepi67, à: 22/05/2005 17:00
 

Pièces jointes

Bonjour

ci-dessous ta macro modifié :

Option Explicit
Sub Recher_place()
'Action de cette macro : Recherche places réservées
Dim x As String
Dim nombre As Integer
Dim c As Range
Dim firstaddress As String
x = ActiveCell.Value
nombre = Cells(ActiveCell.Row, 256).End(xlToLeft).Columns
Sheets('Feuil2').Select
With Worksheets('Feuil2').Range('B2:AF22')
   
Set c = .Find(x, LookIn:=xlValues)
   
If Not c Is Nothing Then
        firstaddress = c.Address
       
Do
            c.Font.ColorIndex = 3
           
Set c = .FindNext(c)
       
Loop While Not c Is Nothing And c.Address <> firstaddress
&nbsp; &nbsp;
End If
&nbsp;
End With
Range(firstaddress, Cells(c.Row, c.Column + nombre - 1)).Select

End Sub


ce code :

nombre = Cells(ActiveCell.Row, 256).End(xlToLeft).Columns

donne la derniere valeur d'une ligne.

Salut
 
Hervé écrit:
Bonjour

ce code :
nombre = Cells(ActiveCell.Row, 256).End(xlToLeft).Columns

donne la derniere valeur d'une ligne.
Salut

Bonjour Hervé, bonjour le forum,

Merci pour le code, il fonctionne parfaitement dans l'exemple donné, mais je n'avais malheureusement :sick: pas précisé qu'il y avait encore une valeur (un produit) dans une colonne plus à droite de mon tableau. Il me faudrait donc trouver l'avant dernière valeur de la ligne.

Quand on débute on ne voit pas toutes les incidences de l'ensemble, mais je progresse (pas à pas) grâce à vous tous qui 'enseignez' sur ce Forum.

Message édité par: jepi67, à: 23/05/2005 09:44
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
13
Affichages
1 K
Retour