Modification de contenu de cellules suivant sélection
#1
Aspirant XLPages

Inscription: 04/10/2009

Messages: 39

Système d'exploitation:
PC & Mac
Version Excel utilisée:
2007, 2010, 2011 MAC
Posté le : 06-08-2012 16h40
Bonjour à toutes et à tous,

Voici ce qui m'amène aujourd'hui:

Chronologiquement, voici le déroulé de ce que je veux faire:
1. A partir d'une listbox, je sélectionne une donnée;
2. Sur la feuille de mon choix, je sélectionne une ou plusieurs cellules adjacentes;
3. Lorsque je relâche mon clic gauche, les cellules prennent la valeur sélectionnée dans la listbox

Quelqu'un a t'il une solution pour moi?

Précisions:
1. La listbox trouve ses données dans un onglet masqué;
2. Mon problème réside non pas dans l'alimentation de la listbox, mais dans le changement automatique des cellules automatiquement après la sélection.

D'avance merci pour vos remarques et solutions!!

Titom
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 07-08-2012 17h41
Bonjour Titom1978, le Forum,

Je crains qu'un fichier exemple soit nécessaire pour qu'on puisse t'aider...

Voir ICI pour joindre ton fichier exemple...
Au besoin, épurer le fichier au strict nécessaire pour 80ko maxi (pas de lien externe pour télécharger le fichier - SVP)

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#3
Aspirant XLPages

Inscription: 04/10/2009

Messages: 39

Système d'exploitation:
PC & Mac
Version Excel utilisée:
2007, 2010, 2011 MAC
Posté le : 07-08-2012 18h01
Pas de soucis, je le poste ce soir!

Je me doutais qu'il allait m'être demandé!!

Titom

That's all folks!!!
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#4
Aspirant XLPages

Inscription: 04/10/2009

Messages: 39

Système d'exploitation:
PC & Mac
Version Excel utilisée:
2007, 2010, 2011 MAC
Posté le : 07-08-2012 23h51
Bonjour tout le monde,

Voici le fichier support de ma requête, il sera en effet plus simple de comprendre ce que je souhaite.

Merci d'avance à tout le monde,

Titom
Pièce jointe:
xlsm Classeur_Titom.xlsm   [ Taille: 46.42 Ko - Téléchargements: 857 ]

That's all folks!!!
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#5
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 08-08-2012 01h37
Bonsoir Titom, myDearFriend

Ci-joint un petit essai avec une Listbox intégrée dans la feuille (contrôle ActiveX qui, à tort ou à raison, me semblait plus simple que de passer par l'intermédiaire d'un Userform).
J'y ai laissé une ligne vide pour pouvoir laisser des cellules à blanc en cas de besoin, on sélectionne l'élément dans la Listbox puis le libellé choisi s'inscrit dans les cellules que l'on sélectionne ensuite dans le tableau.

Le code dans Feuil1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
If Not Intersect(Target, Range("B2:H5")) Is Nothing Then
    Dim Monchoix As String
    Monchoix = Sheets("Feuil2").Range("A1").Offset(ListBox1.ListIndex, 0)
   
    For Each c In Selection
        c.Value = Monchoix
    Next c
    Cancel = True
End If
End Sub
 

(Pour ta dernière question je crois qu'il est impossible de colorier la police d'une Listbox, il semble qu'il faille passer par une Listview, donc conserver ton Userform dans ce cas)

Tu auras sans doute de meilleures propositions mais vois si ce petit essai peut t'aider.

Bonne soirée/nuit,

mth
Pièce jointe:
xlsm Classeur_Titom2.xlsm   [ Taille: 33.48 Ko - Téléchargements: 976 ]
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#6
Aspirant XLPages

Inscription: 04/10/2009

Messages: 39

Système d'exploitation:
PC & Mac
Version Excel utilisée:
2007, 2010, 2011 MAC
Posté le : 08-08-2012 10h26
Merci Mth pour ta réponse!

En effet, ce que tu as produit se rapproche assez de ce que je désire.

J'ai regardé ce qu'était une Listview et il semble que cela soit une solution qui puisse convenir. Maintenant, le problème rencontré est le suivant: comment après avoir sélectionné une valeur dans la listview, je peux modifier les valeurs de cellules, avec la listview toujours affichée?

Et sans vouloir trop abuser, pourrais-tu me commenter ton code, je n'ai pas tout compris (notamment la fonction intersect).

Encore merci,

Titom 

That's all folks!!!
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#7
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 08-08-2012 16h26
Bonjour Titom, myDearFriend,

Un autre essai en PJ avec une ListView (... que j'ai découvert pour l'occasion, donc sans doute très imparfait malgré l'aide précieuse de Silkyroad, mais cela fonctionne)

Pour que la feuille soit accessible il faut que le Userform soit affiché en mode non modal:
Sub AfficheUSF1()
  'Affichage non modal
  UserForm1.Show 0
End Sub
 

Initialisation du Userform et préparation de la ListView:
Private Sub UserForm_Initialize()
'Avec l'aide du tutoriel de Silkyroad http://silkyroad.developpez.com/VBA/ListView/

With ListView1
  'Ajoute une colonne
  With .ColumnHeaders
    'Supprime l'ancienne entête
    .Clear
    'Ajoute 1 colonne en indiquant le nom de l'entête et sa largeur
    .Add , , "Présence", 50
  End With

  'Ajoute les lignes
  With .ListItems
    .Add , , " "
    .Add , , "Matin"
    .Add , , "Après-Midi"
    .Add , , "Nuit"
  End With
 
  'Met les polices en couleur
  .ListItems(2).ForeColor = RGB(0, 128, 0)
  .ListItems(3).ForeColor = RGB(192, 0, 0)

  'Précise l'affichage
  .View = lvwReport 'affichage en mode Rapport pour alignement
  .Gridlines = True 'affiche un quadrillage
  .FullRowSelect = True 'Sélection complète de la ligne

End With

End Sub
 

Pour remplir les cellules sélectionnées avec la valeur choisie dans la Listview:
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim c As Range
  'Boucle sur chaque cellule de la sélection
  For Each c In Selection
    'Si l'intersection de la zone "B2:H5" et de la cellule n'est pas vide
    If Not Intersect(c, Range("B2:H5")) Is Nothing Then
        'la valeur de la cellule est renseignée avec le libellé choisi
        c.Value = Item.Text
    End If
  Next c

End Sub
 

Vois si cela peut t'aider,

Bien à toi,

mth
Pièce jointe:
xlsm Classeur_Titom3.xlsm   [ Taille: 31.21 Ko - Téléchargements: 936 ]
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 08-08-2012 22h32
Bonsoir Titom1978, Mth, le Forum,

Bravo Mth pour la tentative par listview ! Le résultat est pas mal du tout

Une info toutefois au passage :
Attention car le contrôle listView n'est pas compatible avec une version XL2010 64bits (il n'existe pas sous cette version Excel récente).

Une listView, c'est peut-être d'ailleurs un peu too much pour une simple sélection entre 3 items ? (pour ma part, je trouvais la première solution plus light et suffisamment fonctionnelle). Après tout, la couleur ça reste un détail peu important et qui peut très certainement s'illustrer d'une autre façon en trichant un peu (on pourrait par exemple mettre 3 optionbuttons de couleurs différentes en lieu et place d'une liste ou même utiliser carrément 3 cellules de la feuille pour représenter les choix possibles et leur couleur)

Un détail par contre (valable pour tes 2 propositions Mth) :
For Each c In Selection
    c.Value = Monchoix
Next c
... je crois que la boucle est inutile :
Selection.Value = Monchoix
devrait suffire. Normalement, on peut affecter la propriété Value d'une plage entière (avec MonChoix) sans avoir à l'intégrer dans une boucle sur chaque cellule.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#9
Aspirant XLPages

Inscription: 04/10/2009

Messages: 39

Système d'exploitation:
PC & Mac
Version Excel utilisée:
2007, 2010, 2011 MAC
Posté le : 08-08-2012 22h34
Bonsoir Mth, bonsoir à toutes et tous!

Je regarde ta réponse ce soir et je te tiens au courant!

Merci de ta rapidité!

Titom

That's all folks!!!
Hors Ligne
Rapport   Haut 

Re: Modification de contenu de cellules suivant sélection
#10
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 08-08-2012 22h40
Re,

En fait, concernant la première proposition de Mth, le simple code suivant devrait même suffire :

DANS LE MODULE DE CODE DE LA FEUIL1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("B2:H5")) Is Nothing Then
        Cancel = True
        Selection.Value = ListBox1.Text
    End If
End Sub

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes