adresse cellule ?

  • Initiateur de la discussion Baboune
  • Date de début
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.
 

myDearFriend!

XLDnaute Barbatruc
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,
 
B

Baboune

Guest
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.
 

myDearFriend!

XLDnaute Barbatruc
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
 
B

Baboune

Guest
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.
 

Discussions similaires

Réponses
5
Affichages
238

Statistiques des forums

Discussions
312 413
Messages
2 088 201
Membres
103 766
dernier inscrit
mahieux