erreur texte dans formule

Grégf

XLDnaute Junior
Bonjour,
dans une formule et liste déroulante si je rentre un texte (en E10 par exemple) j'ai une erreur en U10.
Je ne vois pas quelle formule utiliser ???
Je joints le fichier car je ne sais pas si je m'exprime bien.
Merci, cordialement.
 

Pièces jointes

  • Planning.xlsx
    21.6 KB · Affichages: 43

Grégf

XLDnaute Junior
Bonjour Dranreb,
oui je note votre solution elle pourra peut-être servir mais je n'ai pas assez de recul sur le sujet. L'idéal ... après réflexion c'est que le texte se mette dans les 2 colonnes du jour concerné (et mieux si ça peut fusionner les 2 cellules pour ne faire qu'une lorsque c'est du texte?) ... mais là je n'ai aucune idée ??? Est-ce faisable ???
Merci, cordialement.
 

Dranreb

XLDnaute Barbatruc
Je ne vois qu'une macro dans le module de la feuille pour l'automatiser :
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub
If Intersect(Me.[C9:Q16], Target) Is Nothing Then Exit Sub
If Target.Column Mod 2 = 0 Then Exit Sub
Me.Protect UserInterfaceOnly:=True
If VarType(Target.Value) = vbString Then
   Target.Resize(, 2).HorizontalAlignment = xlCenterAcrossSelection
Else: Target.Resize(, 2).HorizontalAlignment = xlCenter: End If
End Sub
 

Grégf

XLDnaute Junior
Après une bonne suée j'ai réussi à intégrer votre code (je suis archi nul en VBA !!!).
Il fonctionne parfaitement mais la couleur de fond (mise en forme conditionnelle) ne me met la couleur que sur la colonne de gauche.
Est-il possible de remédier à ça ?
Merci, cordialement.
 

Grégf

XLDnaute Junior
Bonjour,
ça fonctionné la première mais lorsque j'efface les données la fois d'après il y a un bug en C9 qui décale sur d'autres cellule après ???
Je fais une mauvaise manipulation ?
Je joints le fichier.
Merci, cordialement.
 

Pièces jointes

  • Planning V6.xlsm
    31.7 KB · Affichages: 26

Dranreb

XLDnaute Barbatruc
Bonjour.
C'est dû à ce que la macro ne fait rien si on changes plusieurs cellules.
Alors l'effacement de tout laisse des centrages sur plusieurs colonnes de cellules devenues vides
Écrite comme ça, ça va mieux :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
Set Rng = Intersect(Me.[C9:P16], Target): If Rng Is Nothing Then Exit Sub
Me.Protect UserInterfaceOnly:=True
For Each Cel In Rng
   If Target.Column Mod 2 Then
      If VarType(Cel.Value) = vbString Then
         Cel.Resize(, 2).HorizontalAlignment = xlCenterAcrossSelection
      Else: Cel.Resize(, 2).HorizontalAlignment = xlCenter: End If
      End If
   Next Cel
End Sub
 

Discussions similaires

Réponses
9
Affichages
174

Statistiques des forums

Discussions
312 108
Messages
2 085 369
Membres
102 875
dernier inscrit
Jimbo2374