Création plan occupation salle serveur
#1
Débutant XLPages

Inscription: 21/12/2010

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007
Posté le : 22-12-2010 09h18

Bonjour à tous,

J'aurais besoin d'un avi de connaisseur pour la création d'un classeur excel.
A priori ce n'est pas réalisable simplement et ne maitrisant pas le VBA  je ne voudrais pas me lancer dans une mission impossible

J'aimerais réaliser le plan d'une salle serveur. L'onglet "Racks" affiche le plan, l'onglet "switchs" les périphériques. J'aimerais lorsque je complète une cellule dans l'onglet "switchs" avec une valeur définit, en l'occurence un numéro de port de patch panel (voir plan) que cela modifie la couleur (en rouge) de la cellule correspondante au numéro du port du switch dans l'onglet "Racks" ainsi que le numéro du patch panel. Cela me permettrait d'avoir une visibilité rapide de l'occupation des emplacements.

Pour le patch Panel
Je pensais faire une mise en forme conditionnelle indiquant si un chiffre indiqué dans l'onglet "base de données" apparaît dans l'onglet "switchs" alors la cellule correspondante devient rouge dans l'onglet "base de données"

Pour les switchs
faire une autre mise en forme conditionnelle qui indique que si il y a une saisie (quel que soit la valeur) alors la cellule passe en rouge.

Et pour finir, dans l'onglet "racks" lier chaque cellule aux cellules correspondante dans l'onglet "switchs" et "base de données" avec une formule qui copie la couleur de la cellule.

J'éspère avoir été clair :).

Ma question est donc est ce réalisable comme je le décrit ci-dessus ou cela nécessite t'il une programmation VBA ?

Merci d'avance pour votre aide, en attendant je test et recherche dans le forum....

Ps: bonne fête de fin d'année






Pièce jointe:
zip Server RoomB.zip   [ Taille: 19.75 Ko - Téléchargements: 855 ]
Edité par jadsdrago le 23/12/2010 10:07:25
Hors Ligne
Rapport   Haut 

Re: Création plan occupation salle serveur
#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 : 24-12-2010 13h23
Bonjour jadsdrago, bienvenue sur XLpages.com

Effectivement, tes explications sont beaucoup plus digestes avec l'exemple joint.... lol

J'imagine difficilement une solution sans recours à VBA et tu trouveras en pièce jointe mon interprétation de ta demande.

Les couleurs sont gérées exclusivement depuis l'onglet "Switch" :
Tu pré-définis les couleurs de fond de cellule que tu veux pour chaque référence en colonne B, F et J (je l'ai fait pour quelques lignes en exemple, à toi de compléter. Attention toutefois, il me semble qu'Excel est limité à 56 couleurs par classeur dans les versions inférieures à Excel 2007. Il te faudra utiliser 2007 si tu souhaites en utiliser plus).
Le reste est géré automatiquement par procédure évènementielle VBA.

Tu saisies ensuite en colonne C, G ou K les références Patch Panel pour obtenir les couples de brassage souhaités et les couleurs sont automatiquement reportées sur les autres onglets ("Racks" et "Base De Données")...

J'ai utilisé le code évènementiel VBA suivant (dans le module de code de la feuille "Switchs") :
Option Explicit
'---------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 24/12/2010
' Sujet     : Plan armoire de brassage et réf switch/patch
'---------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim NomSwitch As String
Dim Coul As Long
Dim ExistOK As Boolean
Dim vNouv As Variant, vAnc As Variant
Static EnCours As Boolean

    If EnCours Then Exit Sub    'Pour éviter plantage sur boucle/change
    If Target.Count > 1 Then    'Pour éviter plantage sur multi-sélections
        MsgBox "La modification par plage entière est interdite !"
        EnCours = True
        Application.Undo
        EnCours = False
        Exit Sub
    End If
    If Not Application.Intersect(Target, Range("zoneSaisie")) Is Nothing Then
        'Il convient de récupérer l'ancienne valeur de la cellule pour RAZ couleur
        EnCours = True
        vNouv = Target.Value    'Mémorise la nouvelle donnée saisie
        Application.Undo        'Retour arrière
        vAnc = Target.Value     'Récupère l'ancienne valeur
        Target.Value = vNouv    'Réinsère finalement la nouvelle valeur pour suite du traitement
        EnCours = False
        If vNouv = vAnc Then Exit Sub   'Pas de modif = rien à faire
        'Quel switch est concerné ?
        NomSwitch = Columns(Target.Column).Range("A1").Offset(0, -1).Value
        'Quelle couleur faudra-t'il appliquer ?
        Coul = IIf(Target.Value = "", xlNone, Target.Offset(0, -1).Interior.ColorIndex)
        'RAZ couleur correspondant à l'ancienne valeur saisie (dans les autres onglets)
        SupprCoul vAnc, NomSwitch, Target.Offset(0, -1).Value
        'On vérifie si la référence saisie existe dans la base de données
        Set Cel = Sheets("Base De Données").Cells.Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
        ExistOK = Not Cel Is Nothing
        'On applique la couleur...
        If ExistOK Then
            'Dans l'onglet "Switchs"
            Target.Interior.ColorIndex = Coul
            'Dans l'onglet "Base De Données"
            Cel.Interior.ColorIndex = Coul
            'Dans l'onglet "Racks"
            With Sheets("Racks")
                '...pour le Switch
                .Range("switch_" & NomSwitch).Find(Target.Offset(0, -1).Value, LookIn:=xlValues, LookAt:=xlWhole).Interior.ColorIndex = Coul
                '...pour le Patch Panel
                .Cells.Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole).Interior.ColorIndex = Coul
            End With
        Else
            Target.Interior.ColorIndex = xlNone
            MsgBox "Cette référence n'existe pas !"
        End If
    End If
End Sub

Sub SupprCoul(v As Variant, NomSwitch As String, NumSwitch As Variant)
Dim Cel As Range
    If v = "" Then Exit Sub
    On Error Resume Next
    'Dans l'onglet "Base De Données"
    Sheets("Base De Données").Cells.Find(v, LookIn:=xlValues, LookAt:=xlWhole).Interior.ColorIndex = xlNone
    'Dans l'onglet "Racks"
    With Sheets("Racks")
        '...pour le Switch
        .Range("switch_" & NomSwitch).Find(NumSwitch, LookIn:=xlValues, LookAt:=xlWhole).Interior.ColorIndex = xlNone
        '...pour le Patch Panel
        .Cells.Find(v, LookIn:=xlValues, LookAt:=xlWhole).Interior.ColorIndex = xlNone
    End With
End Sub

J'ai également créé des plages nommées pour simplifier le traitement VBA.

Par ailleurs, j'ai dû faire quelques rectifications dans le classeur :
  • Annulation des fusions de cellules inutiles dans l'onglet "Switchs" (les fusions de cellules n'ont jamais fait bon ménage ni avec VBA ni avec les formules de calcul. C'est toujours à éviter).
  • Correction des références de la colonne Dispatch 2 dans l'onglet "Base De Données" : il y avait visiblement un zéro de trop dans ces références en comparaison avec les éléments en onglet "Racks".

J'espère que cette solution te conviendra...

Cordialement,
Pièce jointe:
zip mDF_ServeurRacks.zip   [ Taille: 30.20 Ko - Téléchargements: 1026 ]
Edité par myDearFriend! le 25/12/2010 23:56:08

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: Création plan occupation salle serveur
#3
Débutant XLPages

Inscription: 21/12/2010

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2003, 2007
Posté le : 20-03-2011 14h14
j'ai répondu a l'époque mais à priori ça n'a pas fonctionner :(.
Merci pour ton aide MyDearFriend! j'ai effectivement utilisé Office 2007 et la base fonctionne parfaitement.
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