XL 2010 VBA, écrire texte sous double condition

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 !

Nylream

XLDnaute Junior
Bonjour,

J'aimerais que le mot "Unknow" apparaisse sur certaines cellule aux conditions suivante :
- Si la cellule en A contient un texte
- Si les cellules ciblé sont vide (ne rien écraser)

J'ai testé plusieurs code, dont le suivant mais sans résultat.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("B:C, F:G, I:K")) Is Nothing Then
  
    If Range("A" & i) <> "" And Target.Text = "" Then Target.Offset(0, 0).Value = "Unknow"
  
    End If
  
End Sub
(petite question en passant: comment formaté le code ci dessus en VB pour une meilleur lisibilité?)

Je joins un fichier test

Merci d'avance pour toute aide,
 

Pièces jointes

Dernière édition:
bonjour,

If Range("A" & i) <> "" alors que i n'est pas définit explique l'erreur.
If Range("A" & Target.Row).Value <> "" rendra le code fonctionnel.
Un petit option explicit t'aurais permis de voir l'erreur de suite.

Quant à la lisibilité, pas grand chose à changer ; on peut éventuellement supprimer application avant intersect ; mais je ne vois pas grand chose d'autre...

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Range("B:C, F:G, I:K")) Is Nothing Then
  If Range("A" & Target.Row).Value <> "" And Target.Value = "" Then Target.Value = "Unknow"
  End If
End Sub
 
Bonsoir Iznogood1, et merci infiniment... je commençais à me transformer en chèvre...

Pour la lisibilité, je parlais du code copier sur le forum dans mon post plus haut, la balise [code*] doit pouvoir s'incrémenter en VB pour être plus lisible 🙂

En tout cas, ça va m'aider à avoir un code plus propre, merci beaucoup 🙂
 
Bonjour Iznogood1,

Je rencontre un tout petit soucis lorsque je sélectionne plusieurs cellule "incompatibilité de type"
Cette partie la se surligne dans le code, mais je ne comprend même pas ce qui dérange
If Range("A" & Target.Row).Value <> "" And Target.Value = "" Then
Aurais tu une idée pour que ça n'arrive pas ?

Merci pour ton aide,
 
Normal,
Target = la plage selectionnée.
donc Target.value n'a pas de sens...
Il faut améliorer ton code pour parcourir les cellules une à une

Example :
Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim r As Range
  If Not Application.Intersect(Target, Range("B:C, F:G, I:K")) Is Nothing Then
  For Each r In Intersect(Target, Range("B:C, F:G, I:K"))
  If Range("A" & r.Row) <> "" And r.Value = "" Then r.Value = "Unknow"
  Next r
  End If
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
1 K
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
447
Réponses
4
Affichages
439
Réponses
4
Affichages
406
Réponses
1
Affichages
413
Réponses
32
Affichages
1 K
Retour