Sélection graphique dans un planning d'occupation

Renaud75015

XLDnaute Junior
Afin de fabriquer une interface utilisateur sympathique, je souhaiterais, pour l'application que je veux développer pour gérer un espace de stockage, permettre à l'utilisateur de réserver un espace de stockage de manière purement graphique en sélectionnant à la souris une zone, et récupérer - soit sur la feuille (de préférence) - soit dans une macro, les références de la zone sélectionnée. Voici mon interface utilisateur, et merci d'avance de vos nombreuses réponses :)
 

Pièces jointes

  • Projet.xlsm
    20.7 KB · Affichages: 31
  • Projet.xlsm
    20.7 KB · Affichages: 45
  • Projet.xlsm
    20.7 KB · Affichages: 39

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Sélection graphique dans un planning d'occupation

Bonjour Renaud,

...........permettre à l'utilisateur de réserver un espace de stockage de manière purement graphique en sélectionnant à la souris une zone..............

voir fichier joint pour ce qui concerne le coloriage des cellules

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    28.9 KB · Affichages: 41
  • 111.xlsm
    28.9 KB · Affichages: 33
  • 111.xlsm
    28.9 KB · Affichages: 30

Staple1600

XLDnaute Barbatruc
Re : Sélection graphique dans un planning d'occupation

Bonjour à tous

Renaud75015
Voici mon interface utilisateur
Avant de nous présenter ton interface, n'aurait-il pas fallu nous présenter un petit Bonjour ? :rolleyes:

NB: Inscrit depuis 2011, tu ne peux pas prétendre ne pas connaitre ce b.a.ba du forum ...:p
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Sélection graphique dans un planning d'occupation

Bonjour Renaud75015, Philippe, Jean-Marie,

Une autre solution pour les couleurs dans le fichier joint :

Code:
Dim mem As Range 'mémorise

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim P As Range, C As Range
Set P = [D5:AB19]
Set C = [AG3:AG8]
If Intersect(Target, Union(P, C)) Is Nothing Then Set mem = Nothing
If Not Intersect(Target, P) Is Nothing Then Set mem = Intersect(Target, P)
If Not Intersect(Target, C) Is Nothing And Target.Count = 1 _
  And Not mem Is Nothing Then
  mem.Interior.Color = Target.Interior.Color
  mem.Font.Color = Target.Font.Color
  If Target = "Effacer" Then mem = "" Else mem = Target
  mem.Select
End If
End Sub
A=
 

Pièces jointes

  • Projet(1).xlsm
    29.1 KB · Affichages: 14

job75

XLDnaute Barbatruc
Re : Sélection graphique dans un planning d'occupation

Re,

En utilisant le nom défini mem (masqué) la mémorisation est durable :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim P As Range, C As Range
Set P = [D5:AB19]: Set C = [AG3:AG8]
If Intersect(Target, Union(P, C)) Is Nothing _
  And Not IsError([mem]) Then ThisWorkbook.Names("mem").Delete
If Not Intersect(Target, P) Is Nothing Then _
  ThisWorkbook.Names.Add "mem", Intersect(Target, P), Visible:=False
If Not Intersect(Target, C) Is Nothing And Target.Count = 1 _
  And Not IsError([mem]) Then
  [mem].Interior.Color = Target.Interior.Color
  [mem].Font.Color = Target.Font.Color
  If Target = "Effacer" Then [mem] = "" Else [mem] = Target
  [mem].Select
End If
End Sub
Voyez ce fichier (2) où la plage D5:E9 est déjà sélectionnée.

On peut la modifier immédiatement en cliquant dans AG3:AG8.

A+
 

Pièces jointes

  • Projet(2).xlsm
    29.3 KB · Affichages: 19

Renaud75015

XLDnaute Junior
Re : Sélection graphique dans un planning d'occupation

Merci pour ces réponses fort pertinentes, qui m'ont permis de progresser. J'ai trouvé un code qui correspond à ma recherche, le voici :

Sub reservation()

Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez la plage à réserver", "Sélection de cellules", Type:=8)
Range("AK11").Copy
Range(Plage.Address).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Range("A1").Select
Selection.ClearContents

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 756
Messages
2 091 738
Membres
105 060
dernier inscrit
DEDJAN Gaston