Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Fusionner les doublons de date

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

scrib

XLDnaute Nouveau
Bonjour,
Je voudrais fusionner les cases qui ont la même date, mais le code que j'ai fais ne fonctionne pas, pouvez-vous m'aider?
L'erreur que je reçois est :
Ligne => "Un.Add.Cell , CDate(Cell)"
instruction => "CDate(Cell)"
Erreur retournée => erreur compilation: argument non facultatif

VB:
Dim Plage As Range
    Dim Cell As Range
    Dim Un As New Collection
    Dim Tableau() As Integer
    Dim Nombre As Integer
     Set Plage = Sheets("feuil2").Crange("A2:A1048521")
    On Error Resume Next
    For Each Cell In Plage
        Un.Add.Cell , CDate(Cell)
        If Err.Number <> 0 Then
            Nombre = Nombre + 1
            ReDim Preserve Tableau(1 To Nombre)
            Tableau(Nombre) = Cell.Row
            Err.Clear
        End If
    Next Cell
    On Error GoTo 0
    If Nombre = 0 Then
        Exit Sub
    End If
    For nomnbre = UBound(Tableau) To LBound(Tableau) Step -1
        Sheets("Feuil2").Cells(Tableau(Nombre)).Merge
    Next Nombre

Merci pour vos futures réponses
 
Solution
Bonjour scrib

Je te suggère cette macro
VB:
Sub fusion()
For n = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
   If IsDate(Range("A" & n)) And Range("A" & n - 1) = Range("A" & n) Then
    Application.DisplayAlerts = False
      Range("A" & n & ":A" & n - 1).MergeCells = True
    Application.DisplayAlerts = True
   End If
Next
End Sub
Bonjour scrib, le forum
Peux-tu nous fournir un fichier exemple stp ?
En attendant,
il y a quelques fautes de frappe dans ton code :

Ligne 6 (remplace Crange par range)
Code:
Set Plage = Sheets("feuil2").Crange("A2:A1048521")

Ligne 9 (remplace Un.Add.Cell par Un.Add Cell
Code:
Un.Add.Cell , CDate(Cell)

Ligne 21 (remplace nomnbre par nombre)
Code:
For nomnbre = UBound(Tableau) To LBound(Tableau) Step -1

Cordialement.
 
Bonjour scrib

Je te suggère cette macro
VB:
Sub fusion()
For n = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
   If IsDate(Range("A" & n)) And Range("A" & n - 1) = Range("A" & n) Then
    Application.DisplayAlerts = False
      Range("A" & n & ":A" & n - 1).MergeCells = True
    Application.DisplayAlerts = True
   End If
Next
End Sub
 
Merci pour cette solution.
 
Bonjour pierrejean,

La solution fonctionne, mais si l'on ouvre plusieurs fois sur le fichier ça ne fonctionne pas.
Ca ne reprend pas les cases fusionnées de la session d'avant. Je joints le fichier pour essai.
Merci
Cdtl.
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
162
Réponses
4
Affichages
177
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
144
Réponses
5
Affichages
232
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…