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

B

Baboune

Guest
Bonjour tous le monde,

J’ai un classeur (pneu.xls) que je veux mettre à jour de tarif. Pour ce faire, je dispose de plusieurs classeurs de plusieurs marques de pneumatiques, contenant plusieurs feuilles avec références et tarifs.

J'arrive, grâce a un code emprunté à myDearFriend! (Merci à lui), à retrouver une référence dans le bon classeur et la bonne feuille des marques de pneus.
Mon problème est que je n'arrive pas connaître le numéro de ligne et de colonne pour cette référence.
J'en ai besoin pour récupérer le prix qui ce trouve X colonnes plus loin et qui est la seule ayant une couleur de remplissage.

Voici le code utilisé :

'Rechercher la valeur dans chaque classeur
For N = 1 To ListeClasseurs.Count
Application.EnableEvents = False
Workbooks.Open Chemin & '\\' & ListeClasseurs(N)
Application.EnableEvents = True
F = Sheets.Count
With ActiveWorkbook
For R = 1 To F
Set C = .Sheets(R).Columns(1).Find(MaValeur, LookIn:=xlValues)
If Not C Is Nothing Then
MsgBox 'trouvé dans ' + ListeClasseurs(N)
Flag = 1
Exit For 'Valeur trouvée, on sort de la boucle
End If
Next R
End With
If Flag = 1 Then Exit For
Next N

Merci pour votre aide


P.S.
Il est génial ce forum. IL contient des montagnes d'information et dans une ambiance très conviviale.
 
Bonsoir Baboune,

Juste en dessous de :
MsgBox 'trouvé dans ' & ListeClasseurs(N)
Tu peux peut-être ajouter :
MsgBox 'ligne : ' & C.Row & vbLf & 'colonne : ' & C.Column
(sauf erreur de ma part, vu le code utilisé, 'colonne' vaudra toujours 1)

Et pour récupérer le prix :
'Le prix qui ce trouve X colonnes plus loin (X à définir)
Prix = ActiveWorkbook.Sheets(R).Cells(C.Row, C.Column).Offset(0, X).Value
Cordialement,
 
Bonsoir myDearFriend!

Bravo et merci, ça me donne exactement ce que je cherchai (l’adresse de la cellule).
Si tu le veux bien, tu pourrais peut être m’aider encore un peut.

La valeur X qui correspond au prix est variable d’un classeur à l’autre. Leur seul point commun est que cette cellule est dotée d’une couleur de remplissage.

Comment lancer une recherche sur la même ligne en fonction de la couleur de remplissage, afin de determiner la valeur de X.
 
Re Baboune,

Toujours au même endroit, tu peux peut-être essayer d'insérer les lignes suivantes :
      For P = C.Column + 1 To 256
            If .Sheets(R).Cells(C.Row, P).Interior.ColorIndex <> xlNone Then
                  MsgBox 'Prix = ' & .Sheets(R).Cells(C.Row, P).Value
                  MsgBox 'Ligne : ' & C.Row & vbLf & 'Colonne : ' & P
            End If
      Next P
Bien sûr, la nouvelle variable P devra être déclarée en Integer en début de procédure.

Cordialement,

Message édité par: myDearFriend!, à: 08/06/2005 23:44
 
Bonsoir myDearFriend!

La ligne :

If .Sheets(R).Cells(C.Row, P).Interior.ColorIndex <> xlNone

ne fonctionne pas avec <> xlNone

J'ai remplacé xlNone par 2 qui correspond au blanc et cela fonctionne.

Merci de m'avoir accordé un peu de ton temps et beaucoup de ton savoir à m'aider.
 
- 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
5
Affichages
900
Réponses
15
Affichages
765
Retour