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 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
835
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
Retour