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 !

Re : macro combinée

Stagiairerm,

Avec ceci cela devrait le faire:

Sub test()
Dim i As Byte
Dim c As Range
For i = 1 To 2
For Each c In Range("A" & i + 3 & ":L" & i + 3).Cells
If c.Value = Range("N" & i) Then
c.EntireColumn.Hidden = False
End If
Next
Next i
End Sub

A bientôt
 
Re : macro combinée

Stagiairerm,

Avec ceci cela devrait le faire:

Sub test()
Dim i As Byte
Dim c As Range
For i = 1 To 2
For Each c In Range("A" & i + 3 & ":L" & i + 3).Cells
If c.Value = Range("N" & i) Then
c.EntireColumn.Hidden = False
End If
Next
Next i
End Sub

A bientôt

Hasco,

Merci de ta réponse,
Je viens de faire le test, malheureeusement cela ne fonctionne pas...

Tu as essayé de ton coté ?
 
Re : macro combinée

Stagiairerm,

Je crois que je viens seulement de comprendre ce que tu voulais faire dans ta macro. D'où l'importance de bien expliquer le but d'une macro.
En l'occurence et si j'ai bien compris: Tu veux cacher les colonnes de la plage A4:L5 si les deux cellules (celle de ligne 4 et celle de ligne 5) correspondent aux critères de N1 et N2.

Si c'est cela, la macro suivante le fait.

Code:
Sub test()
    Dim c As Range
    With Sheets("Feuil1")
    For Each c In .Range("A4:L4").Cells
            c.EntireColumn.Hidden = (c.Value = .Range("N1")) And c.Offset(1).Value = Range("N2")
    Next
    End With
End Sub
Chez moi cela fonctionne dans ces conditions

A+
 
Re : macro combinée

Le document d'origine est bien plus grand donc là ce n'est qu'un condencé

L'idée est la suivante : Fermer toutes les colonnes de F à IV

Et ouvrir uniquement celles qui m'intéressent.

Les critères sont dans deux endroit :

1- Client... je choisis dedans les clients que je veux voir apparaitre
Un Userform apparait, je choisis et Valider... La liste des clients selectionnée apparait en M532 à la suite

2- Options... dedans plusieurs critère... pour le coup seul celle du milieu nous interessent soit des noms de colonnes... je selectionnent celle que je veux fairea apparaitre et la liste de la selection apparait en H518

Je voudrai que la macro puisse donc ouvrir les colonnes contenant les deux critères
 
Re : macro combinée

Dim c As Rang
With Sheets("Analyse")
For Each c In .Range("A4:IV4").Cells
c.EntireColumn.Hidden = (c.Value = .Range("M532")) And c.Offset(1).Value = Range("M533") And c.Offset(2).Value = Range("M534") And c.Offset(3).Value = Range("M535") And c.Offset(4).Value = Range("M536") And c.Offset(5).Value = Range("M537") And c.Offset(6).Value = Range("M538") And c.Offset(7).Value = Range("M539") And c.Offset(8).Value = Range("M540") And c.Offset(9).Value = Range("M541") And c.Offset(10).Value = Range("M542") And c.Offset(11).Value = Range("M543") And c.Offset(12).Value = Range("M544") And c.Offset(11).Value = Range("M545") And c.Offset(11).Value = Range("M546") And c.Offset(11).Value = Range("M547") And c.Offset(11).Value = Range("M548") And c.Offset(11).Value = Range("M549") And c.Offset(11).Value = Range("M550") And c.Offset(11).Value = Range("M551") And c.Offset(11).Value = Range("M552") And c.Offset(11).Value = Range("M553") And c.Offset(11).Value = Range("M554") And c.Offset(11).Value = Range("M555") And c.Offset(11).Value = Range("M556") And c.Offset(11).Value = Range("M557")
And c.Offset(11).Value = Range("M558")And c.Offset(11).Value = Range("M559")
Next
End With


Comme tu le vois ma zone de critère est importante est ce que c'est jouable avec ca ?

For Cpt = 532 To 559
Range("A4:IV4").Select
For Each o In Selection
If o.Value = Range("M" & Cpt) Then
o.EntireColomn.Hidden = True
End If
Next o
Next Cpt
 
Re : macro combinée

Re
il n'y a que les tests qui puissent te dire si c'est bon.

Par contre je l'écrirai de cette manière:
Code:
For Cpt = 532 To 559
  For Each o In Range("A4:IV4")
     o.EntireColumn.Hidden = o.Value = Range("M" & Cpt)
  Next o
Next Cpt

1 - Parce que le select est inutile
2 - En ecrivant o.EntireColun=o.Value = Range("M" & Cpt) tu caches ou masques en fonction de l'équivalence des valeurs(True, False)

A +
 
- 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

Discussions similaires

Réponses
14
Affichages
496
  • Question Question
Microsoft 365 Remplissage auto
Réponses
14
Affichages
381
Réponses
4
Affichages
224
Réponses
21
Affichages
480
Réponses
10
Affichages
387
Réponses
8
Affichages
242
Retour