VBA Problème Boucle Tri [RESOLU]

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

Mathar

XLDnaute Nouveau
Salut le forum,

Je vous pris de m'excuser d'avance pour mon faible niveau en VBA qui m'oblige à vous appeler à l'aide pour un problème tout bête.

J'explique le but de la macro: J'ai une feuille contenant différentes tables (non nommées), comportant toutes le même en-tête en colonne A et une cellule vide avant le prochain tableau. Je dois sélectionner les cellules à l'intérieur de chaque table pour leur affecter un tri.

Le problème c'est que je n'arrive pas à les sélectionner dans une boucle, je repère l'en-tête, la dernière ligne de la table et je sélectionne le tout (c'est là que ça bloque), j'applique ensuite un fond bleu pour avoir une confirmation visuelle que ma sélection est bonne j'appliquerai les tris dans un second temps.

Le code:

Code:
Sub SelectionTest()

Dim Y As Integer
With ActiveSheet
Y = Range("A65536").End(xlUp).Row
End With

Dim Z As Long
Dim X As Long
For Z = 1 To Y
    If Range("A" & Z) = "En-tête1" Then _
     X = Range("A" & Z).End(xlDown).Row
        Range("A" & (Z - 2) & ":R" & X).Select
       With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent5
        .TintAndShade = 0
        .PatternTintAndShade = 0
        End With
    
    Next Z
End Sub

Je pense que c'est tout bête mais j'ai modifié dans tous les sens je ne comprend pas pourquoi ça plante sur la ligne:

Code:
Range("A" & (Z - 2) & ":R" & X).Select

Mon "X" est-il mal défini?

Merci d'avance,

Mathar
 
Dernière édition:
Re : VBA Problème Sélection plages variables

Bonjour Mathar,

Essaie ceci, ça devrait marcher (c'est le cas dans l'essai que j'ai fait).

VB:
Sub SelectionTest()
    Dim Z As Long
    For Z = 1 To Range("A65536").End(xlUp).Row
        If Range("A" & Z) = "En-tête1" Then
            With Range("A" & (Z + 1) & ":R" & Range("A" & Z).End(xlDown).Row).Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent5
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
        End If
    Next Z
End Sub

A+
 
Re : VBA Problème Sélection plages variables

Salut Fred0o,

Merci ça marche parfaitement, mais je pense avoir besoin de la valeur X pour gérer le tri par la suite, j'ai réussi à faire fonctionner la partie sélection mais par contre le tri ne se fait pas du tout correctement, il ne s'effectue pas sur les plages que je sélectionne. Ça me laisse un peu perplexe...

Code:
Sub SelectionTest()

Dim Y As Integer
With ActiveSheet
Y = Range("A65536").End(xlUp).Row
End With

Dim Z As Long
Dim X As Long
For Z = 1 To Y
    If Range("A" & Z) = "En-tête1" Then _
        Range("A" & (Z + 2) & ":R" & X).Select
         X = Range("A" & Z).End(xlDown).Row

    ActiveWorkbook.Worksheets("Sheet").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet").Sort.SortFields.Add Key:=Range("F" & (Z + 2) & ":F" & X) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet").Sort
        .SetRange Range("A" & (Z + 2) & ":R" & X)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
       
    Next Z


End Sub

J'ai utilisé l'enregistreur de macro pour obtenir le code du tri, peut-être que la syntaxe n'est pas la bonne...

Mathar
 
Re : VBA Problème Sélection plages variables

Re bonjour,

J'ai vérifier la macro en pas à pas pour voir où ça clochait, en fait la partie de tri s'applique pour chaque Z, et ne tient pas compte du "IF", je dois rajouter un argument pour définir la zone IF ou quelque chose comme ça?

Merci d'avance,

Mathar

EDIT: résolu, le bloc if était mal écrit 😉
 
Dernière édition:
- 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
4
Affichages
180
Réponses
4
Affichages
461
Réponses
7
Affichages
165
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
862
Réponses
2
Affichages
512
Retour