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

XL 2013 [Résolu] Test tableau

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

Lone-wolf

XLDnaute Barbatruc
Bonjour à toutes et à tous 🙂

j'ai créé cette macro

VB:
Option Explicit

Sub test()
Dim i&, num%, tbl, tablo()

    Application.ScreenUpdating = False
    tbl = Range("a2:a" & Range("a" & Rows.Count).End(xlUp).Row)
    num = 1
    ReDim Preserve tablo(1 To UBound(tbl), 1 To 1)

    For i = 2 To UBound(tbl)
        If tbl(i, 1) = tbl(i - 1, 1) Then
            num = num + 1
            tablo(i, 1) = num
        Else
            num = 1
            tablo(i, 1) = num
        End If
    Next i
    [B2].Resize(UBound(tbl), 1) = tablo

End Sub

Je ne comprends pas ce qui est faux dans celle-ci. Danns la cellule B2, il devrait inscire 1, mais ce n'est pas le cas.
 

Pièces jointes

Bonjour Philippe 🙂

Merci d'avoir répondu.

D'accord, mais je voulais utiliser cette façon de faire pour voir ce que ça donnait. La formule, je peux l'inscrire dans la macro, ça mévitera de tirer sur la corde. 😉
 
Bonjour Lone-wolf
Bonjour le Fil , le Forum
voila ce que j'ai fait et qui semble fonctionne.
VB:
Option Explicit
Option Base 1
Sub test()
Dim i&, num%, tbl, tablo()
Dim x&
    Application.ScreenUpdating = False
    tbl = Range("a1:a" & Range("a" & Rows.Count).End(xlUp).Row)
    num = 1
      x = 0
   For i = 2 To UBound(tbl)
       x = x + 1
        ReDim Preserve tablo(1, x)
        If tbl(i, 1) = tbl(i - 1, 1) Then
            num = num + 1
                  tablo(1, x) = num
        Else
            num = 1
                  tablo(1, x) = num
        End If
    Next i
    [B2].Resize(UBound(tablo, 2)) = Application.Transpose(tablo)
Erase tablo
num = 0: i = 0
End Sub
voir Fichier
Bonne fin de journée
Jean marie
 

Pièces jointes

Dernière édition:
Bonjour @Lone-wolf, à tous,

Une autre piste avec un seul tableau pour le fun :
VB:
Sub test()
Dim i&, tbl, dat
   With Range("a2:a" & Range("a" & Rows.Count).End(xlUp).Row)
      tbl = .Value: dat = tbl(1, 1): tbl(1, 1) = 1
      For i = 2 To UBound(tbl)
         If tbl(i, 1) = dat Then
            tbl(i, 1) = tbl(i - 1, 1) + 1
         Else
            dat = tbl(i, 1): tbl(i, 1) = 1
         End If
      Next i
      .Offset(, 1).Resize(Rows.Count - 1).Clear
      .Offset(, 1).Value = tbl
   End With
End Sub
 
- 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
1 K
Réponses
3
Affichages
834
Réponses
5
Affichages
815
Réponses
3
Affichages
569
Réponses
5
Affichages
707
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
217
Réponses
10
Affichages
533
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…