Liste déroulante et commentaires

philouis

XLDnaute Junior
Bonjour le forum,

Dans la feuille « planning » aux colonnes D à H se trouve une liste déroulante.
Je souhaiterais que chaque fois que la valeur « visite services » (et uniquement pour cette valeur) de cette liste déroulante est affichée :
1° la date (en ligne) et le nom (en colonne) sont reportées automatiquement dans la feuille « visite services » en colonnes A et B
Exemple : la cellule E 12 de la page « planning » affiche « visite services »
Report automatique dans la feuille « visite services »de la valeur 12/10/2009 en cellule A4 et report automatique de la valeur «Agnès » en cellule B4
2° les éventuelles notes inscrites après coup en colonne C (« observation ») de la feuille « visite services » sont automatiquement reportées dans un « commentaire » lié à la cellule correspondante de la feuille « planning »
3° la feuille « planning » est susceptible d’être modifiée selon les circonstances. Si par exemple dans le cas précédent la cellule E12 est modifiée en prenant une autre valeur que « visite services » (par exemple « réunion ») ou reste à blanc, il faut que toute la ligne qui avait été générée dans la feuille « visite services » - y compris les éventuelles notes inscrites en colonne C (« observation »)- soit supprimée.

Ces problèmes sont pour moi totalement insurmontables.

Merci d’avance aux as du forum qui voudront bien m’apporter leur aide.

Cordialement
 

Pièces jointes

  • PLANNING V01.zip
    11.3 KB · Affichages: 49

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste déroulante et commentaires

Bonjour,

Voir point 1 en PJ

Code:
Private Sub Worksheet_Activate()
  Set f = Sheets("Planning 2009")
  [A4:B1000].ClearContents
  For Each c In f.Cells.SpecialCells(xlCellTypeAllValidation)
     If c.Value = "Visite Services" Then
        [A65000].End(xlUp).Offset(1) = f.Cells(c.Row, 1)
        [A65000].End(xlUp).Offset(, 1) = f.Cells(5, c.Column)
     End If
  Next c
End Sub

Il faut écrire chaque date dans une seule cellule en colonne A.

Si le commentaire était saisi en Planning2009.

Code:
Private Sub Worksheet_Activate()
  Set f = Sheets("Planning 2009")
  [A4:B1000].ClearContents
  For Each c In f.Cells.SpecialCells(xlCellTypeAllValidation)
     If c.Value = "Visite Services" Then
        [A65000].End(xlUp).Offset(1) = f.Cells(c.Row, 1)
        [A65000].End(xlUp).Offset(, 1) = f.Cells(5, c.Column)
        [A65000].End(xlUp).Offset(, 2) = c.Comment.Text
     End If
  Next c
End Sub

JB
 

Pièces jointes

  • Copie de PLANNING V01.zip
    19.7 KB · Affichages: 73
Dernière édition:

philouis

XLDnaute Junior
Re : Liste déroulante et commentaires

Bonjour Boisgontier,

Merci pour la réponse et pour la contribution. Le report et la suppression et ou mise à jour se font bien comme je l'espérais, sauf pour la date qui reprend que le jour de la semaine (lundi, mardi) et non la date complète : est-il possible de modifier ça (j'en suis incapable !)
Enfin, la question 2 concernant les notes à reporter dans un commentaire de cellule reste en suspens mais peut-être n'est-ce-pas réalisable ?
Philouis
 

philouis

XLDnaute Junior
Re : Liste déroulante et commentaires

OK, pour la date, j'ai pigé !

Concernant le commentaire dois-je comprendre qu'il faut que j'inverse mon raisonnement, c'est à dire alimenter la zone commentaire de la cellule concernée en feuille "planning" le report se faisant automatiquement en feuille "visite services" ?
si ça doit fonctionner dans ce sens ça me va très bien. Dans ce cas j'imagine qu'il faut insérer le second code transmis : à quel endroit dois-je le placer ?
Merci encore
Philouis
 

philouis

XLDnaute Junior
Re : Liste déroulante et commentaires

Ah, j'ai compris, il suffisait de remplacer le premier code par le second : j'ai testé, ça marche.
Dernière petite chose : est-il possible de supprimer l'en-tête de texte du commentaire qui s'affiche de manière systèmatique en l'occurence "philippe", ça pollue le commentaire affiché en page "visite services".
Merci encore à toi, Boisgontier pour avoir bien voulu m'accorder un peu de ton temps.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste déroulante et commentaires

Code:
Private Sub Worksheet_Activate()
  Set f = Sheets("Planning 2009")
  [A4:B1000].ClearContents
  For Each c In f.Cells.SpecialCells(xlCellTypeAllValidation)
     If c.Value = "Visite Services" Then
        [A65000].End(xlUp).Offset(1) = f.Cells(c.Row, 1)
        [A65000].End(xlUp).Offset(, 1) = f.Cells(5, c.Column)
        If Not c.Comment Is Nothing Then
          temp = c.Comment.Text
          p = InStr(temp, ":")
          If p <> 0 Then temp = Mid(temp, p + 1)
          [A65000].End(xlUp).Offset(, 2) = temp
        End If
     End If
  Next c
End Sub

http://boisgontierjacques.free.fr/pages_site/dates.htm#CreaBD

JB
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
193
Réponses
9
Affichages
368

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal