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

code vba - erreur

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

JCC44

XLDnaute Nouveau
Bjr

Dans 1 feuille excel j'ai 3 tableaux ce synthèse de 3 colonnes et 20 lignes chacun que je souhaite voir se trier automatiquement, sur colonne 1 puis en cas d'égalité sur colonne 2, avec mise à jour automatique lors de l'ajout de données dans un autre tableau de la même feuille.

je pense qu'il me manque une "liaison" entre les pavés pour éviter le mélange....

Si qqu'un a une solution d'avance merci.

j'ai commencé à créer ce code mais si le 1er pavé fonctionne bien tout seul, l'ajout des 2 autres fait que plus rien ne fonctionne :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([E2], [P29], Range("E2😛29"))) Is Nothing Then Exit Sub
Range("R2:S22").Select
Selection.Sort Key1:=Range("R2"), Order1:=xlAscending, Header:=xlGuess, _
Key2:=Range("S2"), Order2:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal


If Intersect(Target, Union([E33], [P60], Range("E33😛60"))) Is Nothing Then Exit Sub
Range("V2:X22").Select
Selection.Sort Key1:=Range("V2"), Order1:=xlAscending, Header:=xlGuess, _
Key2:=Range("W2"), Order2:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

If Intersect(Target, Union([A62], [B80], Range("A62:B80"))) Is Nothing Then Exit Sub
Range("Z2:AB22").Select
Selection.Sort Key1:=Range("Z2"), Order1:=xlAscending, Header:=xlGuess, _
Key2:=Range("AA2"), Order2:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

End Sub
 

Pièces jointes

Dernière édition:
Re : code vba - erreur

Bonjour JCC44.


Peut-être un petit problème de logique ?
Avec cette structure :
Code:
If Condition1 Then Exit Sub
'Code1
If Condition2 Then Exit Sub
'Code2
...
Si Condition1 renvoie VRAI, Condition2 n'est pas testée.


Ne vaudrait-il pas mieux cela ?
Code:
If Not Condition1 Then
'Code1
ElseIf Not Condition2 Then
'Code2
End If
...


À essayer :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

  If Not Intersect(Target, Union([E2], [P29], Range("E2:P29"))) Is Nothing Then
    Range("R2:S22").Select
    Selection.Sort Key1:=Range("R2"), Order1:=xlAscending, Header:=xlGuess, _
    Key2:=Range("S2"), Order2:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

  ElseIf Not Intersect(Target, Union([E33], [P60], Range("E33:P60"))) Is Nothing Then
    Range("V2:X22").Select
    Selection.Sort Key1:=Range("V2"), Order1:=xlAscending, Header:=xlGuess, _
    Key2:=Range("W2"), Order2:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

  ElseIf Not Intersect(Target, Union([A62], [B80], Range("A62:B80"))) Is Nothing Then
    Range("Z2:AB22").Select
    Selection.Sort Key1:=Range("Z2"), Order1:=xlAscending, Header:=xlGuess, _
    Key2:=Range("AA2"), Order2:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
  End If

End Sub

Bonne journée.


ℝOGER2327
#7787


Vendredi 6 Pédale 142 (Vers Belges - fête Suprême Quarte)
10 Ventôse An CCXXIII, 0,7220h - bêche
2015-W09-6T01:43:58Z
 
- 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
XL 2021 listbox
Réponses
18
Affichages
426
Réponses
17
Affichages
1 K
Réponses
6
Affichages
1 K
Réponses
2
Affichages
791
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…