Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
bonjour les As d'excel
j'ai un tableau de 70 chiffres
certaines cellules sont colorées (importe la couleur)
j'aimerais extraire de ce tableau les chiffres dans les cellules colorées qui se suivent .
voir fichier joint
merci a tous et toutes
perrmi
Pour la cellule ça parait normal. Un changement de couleur n'entraine pas de Calculate, de plus ta fonction n'est pas volatile.
Il faudrait ajouter à ta fonction Application.Volatile, et faire F9 (ou valider une cellule) pour qu'elle se mette à jour.
Ca, je suppose que tu le savais.
Quant à la MFC on pourrait la qualifier de super-volatile ;-) elle se met en place rien qu'en balayant les couleurs avec la souris, sans même valider. Pour avoir le rendu en temps réel
eric
La fonction du post #3 ne répond pas vraiment au problème posé.
Car elle traite les cellules adjacentes d'une même ligne alors que perrmi parle de chiffres qui se suivent.
Alors voyez ce fichier (2) avec cette nouvelle fonction :
Code:
Function SuiteColorée(c As Range, P As Range) As Boolean
If c.Interior.Color = 16777215 Then Exit Function
Dim n&: n = c
For Each c In P
If c.Interior.Color <> 16777215 And (c = n - 1 Or c = n + 1) _
Then SuiteColorée = True: Exit Function
Next
End Function
Pour tester j'ai créé le tableau M5:V11 qu'on remplit de nombres aléatoires avec cette macro :
Code:
Sub Alea()
'se lance par les touches Ctrl+R
Dim t, ncol%, i&, j%
With Feuil1.[M5:V11] 'plage à adapter
If .Count = 1 Then Exit Sub
Randomize
t = .Value: ncol = UBound(t, 2)
For i = 1 To UBound(t)
For j = 1 To ncol
t(i, j) = Int(1 + 99 * Rnd) 'nombres entiers entre 1 et 99
Next j, i
.Value = t
End With
End Sub
Nota : si l'on entre la formule =ALEA.ENTRE.BORNES(1;99) dans la plage la MFC ne va pas *.
* Edit : la MFC va bien si l'on rend la fonction volatile, fichier (2 bis).
Je pense que oui, nécessaire pour la visualisation en direct de l'effet de la MFC.
De la même façon qu'une fonction non volatile sera ré-évaluée même en l'absence de modification de ses antécédents si tu la complètes dans une formule par une fonction volatile.
ex: =mafonction(A1)+alea()*0
rend mafonction() volatile (dans cette formule). Nécessaire car excel n'a que le résultat global de stocké, il faut ré-évaluer tous les éléments.
eric
- 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