Trié avec cellule fusionnée

  • Initiateur de la discussion Initiateur de la discussion myjidu35
  • 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 !

M

myjidu35

Guest
Bonjour à tous,

Je viens vers vous car j'aurais besoin d'aide.

En effet je souhaiterais réaliser un tri de dates par rapport au fichier joint.
Le problème est que j'ai fusionner les cellules des dates ce qui fait que quand je choisis une date, seul la premiere cellule des cellules fusionné apparaît.

Auriez vous un moyen d'effectuer un tri en gardant ce type de présentation?

Merci
 

Pièces jointes

Re : Trié avec cellule fusionnée

Autant pour moi

Je n'ai pas trouvé, j'arrive a faire un filtre soit sur une colonne ou toutes les colonnes mais pas sur deux colonnes...
 
Dernière modification par un modérateur:
Re : Trié avec cellule fusionnée

Bonsoir myjidu35,

En règle générale (selon mapomme), évitez, fuyez, bannissez, conjurez, écartez la fusion de cellules dans les tableaux destinés à contenir des données à l'instar d'une table de base de données. Cela n'apporte que des déboires en particulier sur les tris, filtres etc.
 
Dernière édition:
Re : Trié avec cellule fusionnée

Bonjour,

Je vais une fois de plus vous solliciter car j'aimerais réaliser une macro qui me permette de filtrer les années et les semaines.
En gros, en entrant la valeur de l'année dans une cellule la sélection se met automatiquement à jour

Cependant je ne vois pas comment effectuer cela...

Merci
 

Pièces jointes

Re : Trié avec cellule fusionnée

Bonjour à tous.


Peut-être comme ceci :​
Code:
Sub Filtrer()
    With ActiveSheet.Range("$A$6:$B$2338")
        .AutoFilter Field:=1, Criteria1:=[N4]
        .AutoFilter Field:=2, Criteria1:=[N5]
    End With
End Sub


ROGER2327
#6913


Mardi 10 Haha 141 (Saint Panmuphle, huissier - fête Suprême Quarte)
24 Vendémiaire An CCXXII, 8,8709h - amaryllis
2013-W42-2T21:17:25Z
 
Re : Trié avec cellule fusionnée

Bonjour à tous,

Un essai de fichier avec le code de ROGER2327 (que je salue) et sans cellule fusionnée.

  • On a fusionné toutes les cellules.
  • La colonne auxilliaire C "Date bis" a été copiée en valeur sur la colonne D des dates.
  • La colonne auxilliaire C a été supprimée.
  • On a réécrit les formules pour l'année et la semaine en colonne A et B.
  • Pour le numéro de semaine, comme on est en excel 2010, on a utilisé la formule =NO.SEMAINE(C4;21) (attention n'est valable qu'à/c excel 2010 - votre formule initiale est en revanche valable aussi pour les versions antérieures d'excel).
  • Une MFC sur la colonne C (DATE) n'affiche que la 1ère apparition de la date (formule MFC: =NB.SI($C$4:$C4;$C4)>1).
  • Une MFC sur les colonnes D à I change la couleur de fond en fonction de l'état de la tâche (formule MFC: =$I4="A faire", =$I4="En cours",..., etc.).
  • On peut masquer les colonnes A et B.


Le seul code se trouve dans le module de code de la feuille "Travaux de la semaine":
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("K1:K2"), Target) Is Nothing Then
    Application.ScreenUpdating = False
    With Range("A3:B2335")
      If IsEmpty(Range("K1")) Then .AutoFilter Field:=1 Else _
                .AutoFilter Field:=1, Criteria1:=Range("K1")
      If IsEmpty(Range("K2")) Then .AutoFilter Field:=2 Else _
                .AutoFilter Field:=2, Criteria1:=Range("K2")
    End With
    Application.ScreenUpdating = True
    Application.Goto Range("A1"), True
  End If
End Sub
 

Pièces jointes

Dernière édition:
Re : Trié avec cellule fusionnée

C'est parfait ca 😉

Vraiment merci.

Petite question, je souhaite faire ceci aussi sur les jours.

Ce qui donne:
If Not Intersect(Range("N3,N4,N5"), Target) Is Nothing Then
Application.ScreenUpdating = False
With Range("A5:C2335")
If IsEmpty(Range("N3")) Then .AutoFilter Field:=1 Else _
.AutoFilter Field:=1, Criteria1:=Range("N3")
If IsEmpty(Range("N4")) Then .AutoFilter Field:=2 Else _
.AutoFilter Field:=2, Criteria1:=Range("N4")
If IsEmpty(Range("N5")) Then .AutoFilter Field:=3 Else _
.AutoFilter Field:=3, Criteria1:=Range("N5")

Je suis en erreur sur AutoFilterField:=3

A quoi cela correspond?

Merci
 
Re : Trié avec cellule fusionnée

(re)Bonsoir myjidu35,

Dsl pour ce manque d'information, je parle d'une date type:**/**/****

C'est bien ce que craignais. J'ai toujours eu quelques difficultés à gérer les dates dans des instructions telles les recherches (FIND) ou filtres (AUTOFILTER) via VBA.

Un essai (qui fonctionne chez moi) dans le fichier joint dont le code modifié est:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim aux$
  If Not Intersect(Range("K1:K3"), Target) Is Nothing Then
    Application.ScreenUpdating = False
    If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
    With Range("A3:C2335")
      If IsEmpty(Range("K1")) Then .AutoFilter Field:=1 Else _
                .AutoFilter Field:=1, Criteria1:=Range("K1")
      If IsEmpty(Range("K2")) Then .AutoFilter Field:=2 Else _
                .AutoFilter Field:=2, Criteria1:=Range("K2")
      If IsEmpty(Range("K3")) Then
        .AutoFilter Field:=3
      Else
        aux = Format(Range("K3").Value2, "dd/mm/yyyy")
        .AutoFilter Field:=3, Criteria1:=aux
      End If
    End With
    Application.ScreenUpdating = True
    Application.Goto Range("A1"), True
  End If
End Sub
 

Pièces jointes

Re : Trié avec cellule fusionnée

C'est exactement ce que je souhaitais.

Le fichier est prêt à être utilisé, encore merci.

Trois petites questions tous de même:
-Le fichier est un peu lent, une idée du problème
-Sur la cellule I8 on remarque que j'ai la cellule avec deux lignes, seulement la taille de la cellule ne s’adapte pas automatiquement...
-Et enfin pour finir au sujet de la zone d'impression je voudrais pouvoir imprimer la semaine sélectionnée sur un format A4, cependant je n'arrive pas à l'adapter correctement.

Merci d'avance

et encore merci pour tous
 

Pièces jointes

Re : Trié avec cellule fusionnée

re,

(...) Le fichier est un peu lent, une idée du problème (...)

A chaque fois qu'une valeur change sur votre feuille, vous exécutez la partie suivante de votre code:
VB:
Calculate
    FinLigne = ActiveSheet.UsedRange.Rows.Count
    NumeroLigne = 5
    
    While NumeroLigne < FinLigne
    If Range("J" & NumeroLigne).Value = "Terminé" Then Range("E" & NumeroLigne, "J" & NumeroLigne).Interior.Color = RGB(0, 255, 0)
    If Range("J" & NumeroLigne).Value = "A faire" Then Range("E" & NumeroLigne, "J" & NumeroLigne).Interior.Color = RGB(255, 255, 255)
    If Range("J" & NumeroLigne).Value = "En cours" Then Range("E" & NumeroLigne, "J" & NumeroLigne).Interior.Color = 65535
    If Range("J" & NumeroLigne).Value = "" Then Range("E" & NumeroLigne, "J" & NumeroLigne).Interior.Color = RGB(255, 255, 255)
           NumeroLigne = NumeroLigne + 1
    Wend

Toute cette partie ralentit le traitement. Je vous ai fourni les fichiers v1 et v2 avec une MFC conditionnelle qui rend caduque cette partie de code. Si vous êtes en calcul automatique , l'instruction calculate est aussi inutile. Pour moi, on peut supprimer toute cette partie.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
1 K
R
Réponses
3
Affichages
4 K
Renotec
R
S
Réponses
30
Affichages
4 K
Sacha1980
S
C
Réponses
2
Affichages
1 K
christopher1205
C
T
Réponses
2
Affichages
1 K
Tubule
T
D
Réponses
4
Affichages
662
dormir
D
B
Réponses
16
Affichages
4 K
Benamou39
B
F
  • Question Question
Réponses
7
Affichages
1 K
florian1818
F
Retour