XL 2010 If FIND Is Nothing

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

mmaatthh

XLDnaute Nouveau
Bonjour,

J'ai un tableau qui (A5:X15). Lorsque je sélectionne une plange dans le tableau j'aimerai que pour chaque cellule excel se demande :

si la cellule est vide et que dans la colone de la cellule active entre les ligne 5 et 15 X n'apparait pas alors la valeur de la cellule est X

J'ai dévellopé le code suivant qui ne me donne pas le résultat escompté.

Avez vous des idées pour me réenligner!

Merci à l'avance pour vos conseils


Sub Amath()

Application.ScreenUpdating = False
ActiveSheet.Unprotect

Dim acell As Object

For Each acell In Selection
Set rgFound = Range(Cells(5, ActiveCell.Column), Cells(15, ActiveCell.Column)).Find("X")
If acell = "" And rgFound Is Nothing Then
acell = "X"
End If
Next
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True

End Sub
 
Bonsoir mmaatthh

Dim acell As Range et non Object, Dim Plage as range

Set Plage = [A5:X15]

For each acell In Plage
If acell = "" Then acell = "X"
Next acell


Bonsoir Lone-wolf

Merci pour ta proposition.

Quand je lance la macro, je sélection une plage qui est souvent plus petite que (A5:X15) avec la sourie et je veux que X apparaisse seulement s'il n'est pas présent dans la colone ou la cellule est vide. Le X ne doit apparaitre qu'une seule fois dans chaque colone.

En modifiant un peu mon code j'arrive au résultat souhaité. C'est probablement pas le meilleure façon d'y arriver mais ça fonctionne.

Merci encore


Sub Amath()

Application.ScreenUpdating = False
ActiveSheet.Unprotect

Dim acell As Object

For Each acell In Selection
Set rgFound = Range(Cells(5, acell.Column), Cells(15, acell.Column)).Find("X")
If acell = "" And rgFound Is Nothing Then
acell = "X"
End If
Next
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True

End Sub
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
799
Réponses
12
Affichages
1 K
Retour