Remplir une bulle ou zonne de teste ???

  • Initiateur de la discussion Initiateur de la discussion patinator
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patinator

XLDnaute Nouveau
Bonjour,

Je voudrai réaliser un petit classeur avec trois onglets :

Locaux, - plan des salles
Utilisateurs – utilisateurs par salle
Ordinateurs- PC par salle.

Le but de ce classeur est que lorsque l’on clique sur la zone jaune, il affiche dans une bulle ou fenêtre, les utilisateurs et pc en fonction de la salle.

Pouvez-vous m’aider, je pense qu’il faut faire des macros, mais je ne sais pas les écrire, la c'est trop dur pour moi..

Je joins le fichier exemple.

Merci et bonne fin de journée.

Patinator
 

Pièces jointes

Re : Remplir une bulle ou zonne de teste ???

Bonjour,

Encore une petite question, dans le fichier fait par Papou-net, lorsque je remplace dans la feuille colonne "salle 1" par B215, la macro ne fonctionne plus, je ne comprends pas pourquoi ?

Comment puis je la modifier ?

Merci et bonne journée.

Patinator
 
Re : Remplir une bulle ou zonne de teste ???

Bonjour,

Encore une petite question, dans le fichier fait par Papou-net, lorsque je remplace dans la feuille colonne "salle 1" par B215, la macro ne fonctionne plus, je ne comprends pas pourquoi ?

Comment puis je la modifier ?

Merci et bonne journée.

Patinator

Bonjour patinator,

Le calcul des lignes concernées était basé sur l'extraction des numéros de salles. Puisque tu es amené à modifier leur nom, il faut procéder par recherche de celui-ci (var. Salle) dans les feuilles Utilisateurs et Ordinateurs (fonction Find). Il suffit ensuite d'extraire leur n° de ligne (.Rows) et de retrancher 1 afin de revenir au décalage initial (dec).

Voici donc comment modifier le code:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range, dec As Integer, lst As String, Salle As Range
On Error Resume Next
'si la cellule sélectionnée (Target) est située dans les plages B6:H6 et B14:H14
If Not Intersect(Target, Range("B6:H6,B14:H14")) Is Nothing Then
  'on relève le nom de la salle dans la cellule décalée sur la ligne du dessus (-1) et dans la même colonne(0)
  Set Salle = Target.Offset(-1, 0)
  'le décalage à appliquer (dec) est = au n° de ligne - 1 car la lecture se fera à partir de la ligne 1
  dec = Feuil2.Columns(1).Find(Salle, LookIn:=xlValues).Row - 1
  'boucle sur chaque cellule de Feuil2 contenant une valeur alphanumérique
  For Each cel In Feuil2.Rows(1).SpecialCells(xlCellTypeConstants)
    'si la cellule de la même colonne située (dec) plus bas n'est pas vide,
    'ajoute son contenu à la variable lst avec un retour chariot
    If Not cel.Offset(dec, 0) = "" Then lst = lst & vbCrLf & "   " & cel.Offset(dec, 0)
  Next
  'si lst n'est pas vide, ajoute en début le titre et l'astérisque qui permettra de le supprimer par la suite
  'si la liste correspondante est vide, ajoute simplement l'astérisque
  If Not lst = "" Then lst = "Utilisateurs" & lst & vbCrLf & vbCrLf & "*" Else lst = "*"
  dec = Feuil3.Columns(1).Find(Salle, LookIn:=xlValues).Row - 1
  For Each cel In Feuil3.Rows(1).SpecialCells(xlCellTypeConstants)
    If Mid(lst, InStr(lst, "*") + 1) <> "" Then lst = Replace(lst, "*", "Ordinateurs")
    If Not cel.Offset(dec, 0) = "" Then lst = lst & vbCrLf & "   " & cel.Offset(dec, 0)
  Next
  'supprime l'astérisque
  lst = Replace(lst, "*", "")
  'affiche la liste dans le msgbox
  If lst <> "" Then MsgBox lst, vbOKOnly, Target.Offset(-1, 0)
End If
End Sub

Tu remarqueras, au passage, une amélioration de présentation: le titre du message reprend le nom de la salle.

J'ai ajouté des commentaires dans les lignes principales du code. Je ne sais pas si j'ai été clair dans mes explications, en tout cas je reste à ton écoute pour davantage de précisions.

NB: il est important de ne mettre aucune valeur dans la cellule A1 des feuilles 2 et 3, sous peine de nouveau dysfonctionnement.

Bonne journée.

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour