Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

crx4me

XLDnaute Nouveau
Allo,

Voilà mon défi...


j'ai la plage C4:c30 est la localisation d'une palette dans un entrepot.. et a partir de la ligne 36 jai le plan de l'entrepot..

j'aimerais que quand l'usager inscrit la localisation et bien que ça l'apparraisse où c'est situé sur le plan (couleur, icone, le # de la palette ... j'ai pas de préférence.. juste une inscription..)

la contrainte c'est le nombre de caractère de la plage ... et que mon plan est en 2 dimension

Exemple: 26A1 (rangé "26", rack "A", étage "1") --- sur plan highlighter "26A"

... ou Ex: 1A3 (rangé "1", rack "A", étage "3") --- sur plan highlighter "1A"



est-ce qu'il y a quelqu'un qui peux me donner une piste de départ ?

Merci
Guillaume
 

Pièces jointes

  • Gestion Palette - Entrepôt (en construction).xlsx
    17.3 KB · Affichages: 49

Modeste geedee

XLDnaute Barbatruc
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Bonsour®
une tentative sans macro, utilisant des fonctionnalités Macro XL4

pb :
il faut qu'il y ait effectivement saisie nouvelle en colonne 3
ou bien F9
 

Pièces jointes

  • Gestion Palette - Entrepôt (en construction).xls
    57 KB · Affichages: 48
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Bonjour le fil, bonjour le forum,

Une proposition VBA avec les macro événementielles Change et ClicDroit ci dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pl As Range 'déclare la variable pl (PLage)
Dim plan As Range 'déclare la variable plan
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String ''déclare la variable pa (Première Adresse)

Set pl = Range("C4:C30") 'définit la plage pl
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage pl, sort de la procédure
Set plan = Range("AF46") 'définit la variable plan (initialisation)
For Each cel In Range("D36:AE55") 'boucle sur toutes les cellules de la plage D36:AF55
    'si la couleur de la cellule est "bleu moyen" ou "rouge" ajoute la cellule à la plage plan
    If cel.Interior.ColorIndex = 37 Or cel.Interior.ColorIndex = 3 Then Set plan = Application.Union(cel, plan)
Next cel 'prochaine cellule de la boucle
plan.Interior.ColorIndex = 37 'réinitialise la couleur d'orrigine (bleu moyen)
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
Set r = plan.Find(Left(Target.Value, Len(Target.Value) - 1), , xlValues, xlWhole) 'définit la recherche r (Recherche tous les caractères sauf le dernier de la valeur de cel, dans la plage plan, valeur exacte)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    pa = r.Address 'définit l'adresse pa de lapremière occurrence trouvée
    Do 'éxécute
        r.Interior.ColorIndex = 3 'colore la cellule de rouge
        Set r = plan.FindNext(r) 'redéfinit la recherche (occurrence suivante)
    Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
End If 'fin de la condition
End Sub

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim pl As Range 'déclare la variable pl (PLage)
Dim plan As Range 'déclare la variable plan
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String ''déclare la variable pa (Première Adresse)

Set pl = Range("C4:C30") 'définit la plage pl
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage pl, sort de la procédure
Cancel = True 'annule le menu contectuel lié au clic droit
Set plan = Range("AF46") 'définit la variable plan (initialisation)
For Each cel In Range("D36:AE55") 'boucle sur toutes les cellules de la plage D36:AF55
    'si la couleur de la cellule est "bleu moyen" ou "rouge" ajoute la cellule à la plage plan
    If cel.Interior.ColorIndex = 37 Or cel.Interior.ColorIndex = 3 Then Set plan = Application.Union(cel, plan)
Next cel 'prochaine cellule de la boucle
plan.Interior.ColorIndex = 37 'réinitialise la couleur d'orrigine (bleu moyen)
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
Set r = plan.Find(Left(Target.Value, Len(Target.Value) - 1), , xlValues, xlWhole) 'définit la recherche r (Recherche tous les caractères sauf le dernier de la valeur de cel, dans la plage plan, valeur exacte)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    pa = r.Address 'définit l'adresse pa de lapremière occurrence trouvée
    Do 'éxécute
        r.Interior.ColorIndex = 3 'colore la cellule de rouge
        Set r = plan.FindNext(r) 'redéfinit la recherche (occurrence suivante)
    Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
End If 'fin de la condition
End Sub
Ce sera affiché à l'édition d'une cellule de la plage C4:C30 ou en cliquant avec le bouton droit sur un cellule déjà éditée
Le fichier :
 

Pièces jointes

  • Crx_v01.xls
    68.5 KB · Affichages: 47

crx4me

XLDnaute Nouveau
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Vraiment nice, mais ça renvoi la "dernière localisation tapé dans la feuille" - est-ce que plusieurs localisations peuvent être renvoré?
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Bonsour®

- est-ce que plusieurs localisations peuvent être renvoré?
- j'aimerais que quand l'usager inscrit la localisation

l'usager n'inscrit qu'une localisation à la fois !!!

sinon cela s'appelle un historique, prévoir alors une consultation chronologique, VBA, Macros,Bdd etc...

en pièce jointe autre proposition :
 

Pièces jointes

  • Gestion Palette - Entrepôt (2).xls
    287.5 KB · Affichages: 47

crx4me

XLDnaute Nouveau
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Merci ,

je suis désolé si je me suis mal exprimé, ce que j'essai d'expliquer (avec difficulté car je suis obviously moins avancé que vous dans le domaine ahah)

- est-ce que plusieurs localisations peuvent être renvoyé (en même temps sur le plan) (que toute les localisation dans la plage apparraissent dans le plan?


ultiment les données seront entré dans le tableau et ensuite imprimé et affiché,


Est-ce que la mise en forme conditionnel mettr een rouge TOUTE les localisations du tableau ? example 20a + 1a + 8c tous en rouge







Merci de cette aide c'est vraiment apprécié..
 

Pièces jointes

  • Gestion Palette - Entrepôt (en construction) (3gui).xls
    63 KB · Affichages: 34
  • Gestion Palette - Entrepôt (en construction) (3gui).xls
    63 KB · Affichages: 31
  • Gestion Palette - Entrepôt (en construction) (3gui).xls
    63 KB · Affichages: 35
Dernière édition:

crx4me

XLDnaute Nouveau
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

la mise en forme est presentment =D36=($AG$37)

est-ce que je dois ajouter plusieur mise en forme =D36=($AG$37) =D36=($AG$38) =D36=($AG$39) ... ou il existe une formule pourque ce soit tout ensemble?
 

crx4me

XLDnaute Nouveau
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

trouvé

=D36=(SI(NBCAR($C$4)=4;GAUCHE($C$4;3);GAUCHE($C$4;2))) -- format rouge -- s'applique à =$D$36:$AF$55
=D36=(SI(NBCAR($C$5)=4;GAUCHE($C$5;3);GAUCHE($C$5;2))) -- format rouge -- s'applique à =$D$36:$AF$55
=D36=(SI(NBCAR($C$6)=4;GAUCHE($C$6;3);GAUCHE($C$6;2))) -- format rouge -- s'applique à =$D$36:$AF$55
.....


merci pour l'aide !
 

Pièces jointes

  • Gestion Palette - Entrepôt (en construction) (3gui).xls
    63 KB · Affichages: 32
  • Gestion Palette - Entrepôt (en construction) (3gui).xls
    63 KB · Affichages: 34
  • Gestion Palette - Entrepôt (en construction) (3gui).xls
    63 KB · Affichages: 27

Robert

XLDnaute Barbatruc
Repose en paix
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Bonsoir le fil, bonsoir le forum,

Une nouvelle proposition où les toutes localisations editées sont affichées dans le plan :
 

Pièces jointes

  • Crx_v02.xls
    62 KB · Affichages: 52

Modeste geedee

XLDnaute Barbatruc
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

la mise en forme est presentment =D36=($AG$37)

est-ce que je dois ajouter plusieur mise en forme =D36=($AG$37) =D36=($AG$38) =D36=($AG$39) ... ou il existe une formule pourque ce soit tout ensemble?

il faut surtout pouvoir distinguer l'etage (14F1-14F3)
il faudra aussi lors de la saisie empecher les doublons de localisation (1 palette par localisation)
 

Pièces jointes

  • Gestion Palette - Entrepôt (3).xls
    58.5 KB · Affichages: 48

Modeste geedee

XLDnaute Barbatruc
Re : Mise en forme conditionnelle.. ou formule couleur.. ou vba ..

Bonsour®
Bonsoir le fil, bonsoir le forum,

Une nouvelle proposition où les toutes localisations editées sont affichées dans le plan :

:cool: tsss.... tsss....
:confused: Capture.jpg


edit :
Réponse laconique et lacunaire qui mérite quelques éclaircissements :
:cool: une interessante alternative événementielle (macro)
tssss... tsss... : non ce n'est pas du persiflage, tout au plus une faille chagrinante.
:confused: il n'y a pas autant de carrés rouge que de localisation palette (abstraction du niveau)
(ceci dit il existe des localisations portant sur plusieures cases)
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    55.1 KB · Affichages: 68
  • Capture.jpg
    Capture.jpg
    55.1 KB · Affichages: 75
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia