Remplir plusieurs cellules si un texte est présent ailleurs

Brigitte

XLDnaute Barbatruc
Bonsoir,

Voici ma petite problématique, sûrement très facile pour vous.

Une colonne dans laquelle je veux pouvoir mettre, dans chaque cellule, à la main, une croix (controle).
Exception (et donc je ne peux pas y mettre de formule sinon ca l'écraserait quand je mets une croix) : quand un mot est présent dans une cellule plus haut (pas de délib), j'aimerais que la croix se mette toute seule partout.

Un if... then... mais pour le mettre en musique.

Mon mot est en G4 pour la colonne H, en I4 pour la colonne J. Et chaque colonne est indépendante.

Ainsi H6 à H22 doit se remplir d'une croix si H4 contient "pas de délib" ; J6 à J22 doit se remplir d'une croix si I4 contient "pas de délib"...

Une croix par cellule.

Merci d'avance.
 

Pièces jointes

  • Planification tâches NM 1.xls
    76 KB · Affichages: 97

chris

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour

A placer dans le module de la feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
 If Target.Row = 4 Then
    If Target.Value = "Pas de délib" Then
        Range(Cells(6, Target.Column + 1), Cells(22, Target.Column + 1)).Value = "x"
    Else
        Range(Cells(6, Target.Column + 1), Cells(22, Target.Column + 1)).Value = ""
    End If
 End If
Application.EnableEvents = True
End Sub
On pourrait optimiser en calculant où est la dernière ligne... mais ça répond à la question.
 

Yaloo

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonsoir Brigitte, le forum,

Essaie avec ceci :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For c = 7 To 13 Step 2
  If Cells(4, c) = "Pas de délib" Then
    For i = 6 To 22
    Cells(i, c + 1) = "X"
    Next
  End If
  If Cells(4, c) = "Délibérations" Then
    For i = 6 To 22
    Cells(i, c + 1) = ""
    Next
  End If
Next
End Sub

A coller dans ta feuille.

A+

Bonsoir Chris tu m'as grillé au poteau :)
Yaloo
 

Brigitte

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonsoir,

Super chris, et comme je te le disais à l'instant, j'ai testé, ca marche impecc et comme je le souhaitais... soit t'es super douée, soit j'explique super bien, hein :) :p :rolleyes:

Je rigole... Bravo et merci...
 

Brigitte

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour,

Malheureusement, ce matin, au boulot, avec réellement excel 2003, ca ne fonctionne plus :

- si je choisis "pas de délib" dans une case (ex I4 ou K4), puis "délibération", rien ne se passe
- "pas de délib" ne met plus les croix...
- et j'ai même un bug si je clique plusieurs fois dans I4, K4 ...
- bug si j'enlève tout dans I4, K4 (car parfois je ne sais pas à l'avance si j'aurais ou pas de délib)

Et j'ai juste changé le nom du fichier... mais même celui d'hier fait à la maison ne marche plus en gardant le même nom (je vois pas le nom dans la macro de toute manière).

Si qqun peut venir me sauver, ou chris, si tu passais par là ?

Bisous et merci.
 

Pièces jointes

  • Planification Instances.xls
    82 KB · Affichages: 101
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour Brigitte, le forum,

Peut être avec le fichier ci-joint

A+
 

Pièces jointes

  • Brigitte.xls
    81 KB · Affichages: 84
  • Brigitte.xls
    81 KB · Affichages: 97
  • Brigitte.xls
    81 KB · Affichages: 97
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour,

Merci à toi...
Le souci est que je préfère la macro de chris qui traite toute la ligne et permet ainsi plusieurs dates d'instances.
Le deuxième souci est qu'il y a une tempo un peu bizarre qui traîne et fait qu'on croit que ca n'a pas marché.

Ce que j'aimerais (le rêve) c'est que la macro de chris soit complétée et prenne en compte un nième cas de figure :

- on choisit "pas de délib" : croix dans la colonne adéquate
- on choisit "délibération" : ca supprime les croix
- on met rien, parce qu'on ne sait pas... pas de bug
et ainsi de suite adaptation chaque fois qu'on choisit "pas de délib" ou "délibération" ou rien.

Pour l'instant quand je veux enlever "pas de délib" ou "délibération" pour ne rien mettre, j'ai un bug, je suis obligée de fermer et réouvrir excel pour que cela remarche...

Merci à vous tous.
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour Yaloo, decid (pas rafraichi)

Oui cela marche (mais bizarre, ca m'a mis ma MFC sur le titre qui se met du coup en rouge, je peux rectifier, mais pourquoi ?).
Le temps de traitement est plus long que la macro de chris (je sais je suis exigeante !).

Merci à vous deux

Decid : ca ne fait rien chez moi quand je change "délibération" en "pas de délib"...
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Re,

Avec un mélange du code de Chris et du mien

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 For c = 7 To 13 Step 2
   If Cells(4, c).Value = "Pas de délib" Then
    Range(Cells(6, c + 1), Cells(22, c + 1)).Value = "x"
   End If
   If Cells(4, c).Value = "Délibérations" Or Cells(4, c).Value = "" Then
    ActiveCell.Offset(0, 1).Select
   End If
 Next
End Sub

A+
 

Brigitte

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour,

Je dois pas être douée... Quand je mets ta macro, Yaloo, ca va tout à droite, ca fait tout défiler et ca bugge...

Au secours... Je laisse tomber pour l'instant, merci.
 

Si...

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Salut

une autre façon, avec l'évènement Change :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("G4:M4")) Is Nothing Then Exit Sub
  Dim L As Long
  Application.ScreenUpdating = False
  For L = 6 To 22
    Cells(L, Target.Column + 1) = IIf(Target = "Pas de délib", "X", "")
  Next
End Sub


Nota : avec 2010, quand il y a appel récursif du changement (sans Application.EnableEvents = False, remis à True à la fin), Excel craque et me claque la porte au nez.
Ici,le changement ne se faisant pas sur la "Target" cela passe.
Si... ton nombre de lignes à traiter devient considérable, tu peux* rajouter la désactivation puis l'activation des évènements pour traiter plus vite tous les cas.

* attention, Si... une erreur intervient avant la réactivation tu te retrouveras avec tous les évènements inopérants donc prudence !
 

kjin

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Bonjour zatous,
A tester
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 4 And Target.Column > 6 Then
    With Cells(6, Target.Column + 1).Resize(17, 1)
        If UCase(Target.Text) = "PAS DE DÉLIB" Then
            .Value = "x"
        Else
            .ClearContents
        End If
    End With
End If
End Sub
A+
kjin
 

Yaloo

XLDnaute Barbatruc
Re : Remplir plusieurs cellules si un texte est présent ailleurs

Re Brigitte, le forum,

Oui, désolé ça bugge, en effet je suis allé trop vite et je ne t'ai pas copié la bonne macro. Je te prie de bien vouloir m'excuser.

Voici la bonne :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 For c = 7 To 13 Step 2
   If Cells(4, c).Value = "Pas de délib" Then
    Range(Cells(6, c + 1), Cells(22, c + 1)).Value = "x"
   End If
   If Cells(4, c).Value = "Délibérations" Or Cells(4, c).Value = "" Then
    Range(Cells(6, c + 1), Cells(22, c + 1)).Value = ""
   End If
 Next
End Sub

Mais je vois qu'il y a d'autres solutions intéressantes apportées par kjin et si...

A te lire
 

Discussions similaires

Réponses
7
Affichages
521

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16