Formule Excel

Fermé
KarlyneLoriau - 18 mai 2020 à 09:51
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 - 22 juil. 2020 à 16:01
Bonjour,


J'ai deux questions
1. J'ai une liste deroulante dans chaque cellule de ma colonne G (de G5 à G22) : une fois que toutes ces cellules sont renseignées avec un des choix de ma liste deroulante, je veux un message dans G23 "MAINTENANCE VALIDÉ"

2. Lorsque G23 Annonce "maintenance validé", mes collones de GàJ se masquent

Merci
Configuration: Android / Chrome 80.0.3987.149

13 réponses

via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703
18 mai 2020 à 10:50
Bonjour

1) Pour le message en G23 une formule =SI(NBVAL(G5:G22)=18;"MAINTENANCE VALIDÉE";"")

2) Pour le masquage des colonnes il faut une macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("G23") = "MAINTENANCE VALIDÉE" Then
Columns("G:J").Select
    Selection.EntireColumn.Hidden = True
    End If
End Sub

dlmnt
Via
0
KarlyneLoriau
18 mai 2020 à 11:09
Merci,
Je ne sais pas comment creer et appliquer la macro
0
via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703 > KarlyneLoriau
18 mai 2020 à 11:24
Tu fais ALT+F11 pour ouvrir l'éditeur VBA
Tu copies ma macro
Tu double clic sur nom de la feuille où l'appliquer dans l'arborescence à gauche
tu colles la macro dans la page blanche et tu fermes l'éditeur
0
KarlyneLoriau > via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024
18 mai 2020 à 11:31
Super merci beaucoup !!!!
0
KarlyneLoriau > via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024
18 mai 2020 à 14:00
Une autre question svp. Je souhaite appliquer la meme macro pour les plages (elles se masquent une fois "maintenance terminée"
K : N
O : R
S : V
W :Z
AA : AD
AE : AH
AI : AL
AM : AP
AQ : AT
AU : AX
AY : BB
BC : BF
BG :BJ
BK : bN
BO : BR
BS : BV
BW :BZ
CA : CD
CE : CH
CI : CL
CM : CP
CQ : Ct
CU : CX
CY : DB
DC : DF
DG : DJ
DK : DN
DO : dR
DS : dv
DW :dZ
Ea : ed

Svp
0
via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703 > KarlyneLoriau
Modifié le 18 mai 2020 à 15:51
Dans la macro tu modifies la ligne
Columns("G:J").Select
en Columns("G:ED").Select
0
PapyLuc51 Messages postés 4310 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 4 mai 2024 1 407
18 mai 2020 à 10:52
Bonjour

Pour le 1. cette formule

=SI(NB.VIDE(G5:G22)=0;"MAINTENANCE VALIDÉE";"")

Pour le 2. Il faut une macro pour un masquage automatique.

Sinon sélectionner en cliquant en haut sur la tête des colonnes (clic sur G et glisser vers J en maintenant le clic de la souris) puis clic droit et masquer ; c'est aussi bien.

Cordialement
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
18 mai 2020 à 10:54
Bonjour

Pour le masquage, il va falloir passer par une macro
https://www.cjoint.com/c/JEsi0TjdsWB

Sinon en G23
=SI(NBVAL(G5:G22)=18;"maintenance validée";"")

Cdlmnt
0
KarlyneLoriau
18 mai 2020 à 11:27
Merci,
Je ne sais pas comment ajouter et executer cette macro ?
0
KarlyneLoriau
18 mai 2020 à 12:55
Une autre question svp. Je souhaite appliquer la meme macro pour les plages (elles se masquent une fois "maintenance terminée"
K : N
O : R
S : V
W :Z
AA : AD
AE : AH
AI : AL
AM : AP
AQ : AT
AU : AX
AY : BB
BC : BF
BG :BJ
BK : bN
BO : BR
BS : BV
BW :BZ
CA : CD
CE : CH
CI : CL
CM : CP
CQ : Ct
CU : CX
CY : DB
DC : DF
DG : DJ
DK : DN
DO : dR
DS : dv
DW :dZ
Ea : ed
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
18 mai 2020 à 17:05
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
18 mai 2020 à 20:06
As tu vu ma proposition (post 14) ?
0
KarlyneLoriau > ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024
22 mai 2020 à 07:08
Désolée du retard je n etais plus sur le projet.
Votre proposition fonctionne. Pouvez vous m expliquer comment faire ? Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
22 mai 2020 à 10:53
Bonjour

Tu colles ce code dans le module de la feuille à traiter

Option Explicit

Const codeb = 7     ' première colonne plage à traiter
Const cofin = 131   ' denière colonne  EA
Const lideb = 5     ' première ligne plage à traiter
Const lifin = 22    ' dernière ligne

Const nbco = 4      ' nbre colonnes à masquer par plage

Private Sub Worksheet_Change(ByVal Target As Range)
Dim co As Long, li As Long, plage As Range, co1 As String, co2 As String, adr As String
If Target.Count > 1 Then Exit Sub
co = Target.Column
li = Target.Row
adr = Cells(li, co).Address
co1 = Split(adr, "$")(1)
adr = Cells(li, co + nbco - 1).Address
co2 = Split(adr, "$")(1)
If (co - codeb) Mod nbco = 0 Then
  If li >= lideb And li <= lifin Then
    Set plage = Range(Cells(lideb, co), Cells(lifin, co))
    If Not Intersect(Target, plage) Is Nothing Then
      If Application.WorksheetFunction.CountBlank(plage) = 0 Then
        Cells(lifin + 1, co).Value = "MAINTENANCE VALIDEE"
        Application.Wait (Now + TimeValue("0:00:3"))    ' attend 3s avant de masquer
        Columns(co1 & ":" & co2).EntireColumn.Hidden = True
      End If
    End If
  End If
End If
End Sub


Une fois la première colonne de la plage (de 18 lignes et 4 colonnes) à traiter est remplie, la macro se lancera
Si les adresses ne sont plus les mêmes dans ton fichier, tu modifies les valeurs des constantes (Const) en début de code
https://mon-partage.fr/f/ySZVPThA/

Cdlmnt
0
KarlyneLoriau
15 juil. 2020 à 06:11
Merci ça marche !! Par contre j'ai ce même tableau, dans plusieurs feuilles différentes, et je n'arrive pas à appliquer ce code dans chacune des feuilles. Comment faire ?

Merci
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
15 juil. 2020 à 10:25
Bonjour

Il te suffit (en principe) de recopier le code dans les modules des feuilles à traiter
https://mon-partage.fr/f/7x4LrWHe/

Cdlmnt
0
KarlyneLoriau
15 juil. 2020 à 11:25
Non cela ne fonctionne pas
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
15 juil. 2020 à 11:34
De rien

Non cela ne fonctionne pas
Avec mon fichier ou avec le tien ?

Cdlmnt
0
KarlyneLoriau
15 juil. 2020 à 11:49
Dans le mien, quand je le copie dans chaque feuille, rien ne se passe sur les feuilles concernées pourtant c'est le meme tableau, memes colonnes, memes lignes, meme formules
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
15 juil. 2020 à 11:58
peut être un pb d'adresse de début tableau
Const codeb = 11     ' première colonne plage à traiter
Const lideb = 5 ' première ligne plage à traiter
Const lifin = 22 ' dernière ligne

sinon envoies ton fichier avec trois feuilles à traiter

Cdlmnt
0
KarlyneLoriau
15 juil. 2020 à 13:23
J'ai pas réussi, je vous ai copier mon tableau entier.
https://mon-partage.fr/f/9vlZV8cf/

Je souhaite appliquer la macro à toutes les feuilles qui suivent "balance"

Merci encore vous me sauvez
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
Modifié le 15 juil. 2020 à 15:30
Le pb vient du fait que la dernière ligne n'est pas la même dans toutes les feuilles
Const lifin = 22 ' dernière ligne
Donc deux solutions (à toi de choisir)
S1. Tu modifies la valeur de lifin dans chacun des modules (et c'est fini)
S2. Dans mon retour, je m'y suis pris autrement pour ne pas avoir à faire la manip
Je récupère la valeur de lifin (qui devient une variable) en recherchant dans les colonnes "D:F" le mot "Commentaire"
je t'ai modifié le code dans Balances, Zebra et Soudeuses, qu'il te faudra recopier dans les autres modules (pas sur que ça te prenne moins de temps !)
https://mon-partage.fr/f/VJyoCm1P/

Cdlmnt
0
KarlyneLoriau
22 juil. 2020 à 15:27
Merci, c'est parfait, j'ai effectivement changé la dernière ligne. Tout fonctionne. Je vous remercie pour tout vraiment vous êtes super
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
22 juil. 2020 à 15:39
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en haut dans ton premier message)

Cdlmnt
0
KarlyneLoriau
22 juil. 2020 à 15:41
J attends de valider mon projet avant de clôturer au cas où j aurai d autres questions
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
22 juil. 2020 à 16:01
No problemo !
0