Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2021Traitement automatique de cellules vides dans un tableau
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 !
Bonsoir,
1- Vous ouvrez l'éditeur VBA, vous allez dans Feuil1, vous copiez la macro puis dans votre fichier vous faites un Coller dans la feuille concernée.
2- Il vous suffit de changer les indices de tableaux. Dans :
[Tableau15] = [Tableau1].Value
Tableau15 est le tableau de destination.
Tableau1 est le tableau source.
Donc par ex si vous voulez copier le Tableau 1 dans le Tableau 2 et faire le tri alors cela ferait :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("Tableau1[[#Headers],[Colonne1]]")) Is Nothing Then
[Tableau2] = [Tableau1].Value
[Tableau2].Resize([Tableau2].ListObject.ListColumns.Count).Sort key1:=[Tableau2].Item(1, 1), order1:=xlAscending, Header:=xlNo
End If
End Sub
Tout d'abord Bonjour Matlea, bonjour Gégé,
Un essai en PJ avec simplement :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("Tableau1[[#Headers],[Colonne1]]")) Is Nothing Then
[Tableau15] = [Tableau1].Value
[Tableau15].Resize([Tableau15].ListObject.ListColumns.Count).Sort key1:=[Tableau15].Item(1, 1), order1:=xlAscending, Header:=xlNo
End If
End Sub
Tout d'abord Bonjour Matlea, bonjour Gégé,
Un essai en PJ avec simplement :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("Tableau1[[#Headers],[Colonne1]]")) Is Nothing Then
[Tableau15] = [Tableau1].Value
[Tableau15].Resize([Tableau15].ListObject.ListColumns.Count).Sort key1:=[Tableau15].Item(1, 1), order1:=xlAscending, Header:=xlNo
End If
End Sub
Merci c'est exactement ce que je recherche. Mais comment faire pour transférer la procédure dans mon fichier de travail. Il n y a pas de macro visible dans le fichier que vous m'avez envoyé.
Faut il créer une macro avec le protocole qui est écrit ci-dessus ou bien faut il le coller ailleurs?
Merci c'est exactement ce que je recherche. Mais comment faire pour transférer la procédure dans mon fichier de travail. Il n y a pas de macro visible dans le fichier que vous m'avez envoyé.
Faut il créer une macro avec le protocole qui est écrit ci-dessus ou bien faut il le coller ailleurs?
Pardon, bonsoir et joyeux Noël. Je ne suis pas très familier avec tout ceci et ne sais pas comment traiter une macro événementielle; Où se situe-t-elle dans la feuille et comment la transférer dans mon fichier?
D'avance merci et encore toutes mes excuses pour mon impolitesse
Pardon, bonsoir et joyeux Noël. Je ne suis pas très familier avec tout ceci et ne sais pas comment traiter une macro événementielle; Où se situe-t-elle dans la feuille et comment la transférer dans mon fichier?
D'avance merci et encore toutes mes excuses pour mon impolitesse
Rebonsoir
Encore une question.
Sera t il possible de traiter de la même façon sur la même feuille d autres tableaux semblables au tableau 1 (tableaux 2, 3, 4 etc)?
Bonsoir,
1- Vous ouvrez l'éditeur VBA, vous allez dans Feuil1, vous copiez la macro puis dans votre fichier vous faites un Coller dans la feuille concernée.
2- Il vous suffit de changer les indices de tableaux. Dans :
[Tableau15] = [Tableau1].Value
Tableau15 est le tableau de destination.
Tableau1 est le tableau source.
Donc par ex si vous voulez copier le Tableau 1 dans le Tableau 2 et faire le tri alors cela ferait :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("Tableau1[[#Headers],[Colonne1]]")) Is Nothing Then
[Tableau2] = [Tableau1].Value
[Tableau2].Resize([Tableau2].ListObject.ListColumns.Count).Sort key1:=[Tableau2].Item(1, 1), order1:=xlAscending, Header:=xlNo
End If
End Sub
NB: Une macro évènementielle doit obligatoirement se trouver dans la feuille et avec le même nom.
Si cette macro concerne toutes les feuilles alors elle doit se trouver dans ThisWorkBook.
Bonsoir,
1- Vous ouvrez l'éditeur VBA, vous allez dans Feuil1, vous copiez la macro puis dans votre fichier vous faites un Coller dans la feuille concernée. Regarde la pièce jointe 1209876
2- Il vous suffit de changer les indices de tableaux. Dans :
[Tableau15] = [Tableau1].Value
Tableau15 est le tableau de destination.
Tableau1 est le tableau source.
Donc par ex si vous voulez copier le Tableau 1 dans le Tableau 2 et faire le tri alors cela ferait :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("Tableau1[[#Headers],[Colonne1]]")) Is Nothing Then
[Tableau2] = [Tableau1].Value
[Tableau2].Resize([Tableau2].ListObject.ListColumns.Count).Sort key1:=[Tableau2].Item(1, 1), order1:=xlAscending, Header:=xlNo
End If
End Sub
NB: Une macro évènementielle doit obligatoirement se trouver dans la feuille et avec le même nom.
Si cette macro concerne toutes les feuilles alors elle doit se trouver dans ThisWorkBook.
bonjour à toutes & à tous, bonjour @sylvanu, @MATLEA
Ou puisque tu disposes d'Excel 2021, en supposant que tes données initiales soient en colonne B, sans macro avec la formule :
VB:
=LET(Lst;UNIQUE(B:B);TRIER(FILTRE(Lst;Lst<>"")))
Tu obtiens ta liste triée directement sans les cellules vides
voir feuil2 du fichier joint
À bientôt
bonjour à toutes & à tous, bonjour @sylvanu, @MATLEA
Ou puisque tu disposes d'Excel 2021, en supposant que tes données initiales soient en colonne B, sans macro avec la formule :
VB:
=LET(Lst;UNIQUE(B:B);TRIER(FILTRE(Lst;Lst<>"")))
Tu obtiens ta liste triée directement sans les cellules vides
voir feuil2 du fichier joint
À bientôt
Une fois la formule saisie, le résultat se met à jour à chaque changement dans la colonne B
Si tu veux accéder à l'ensemble du résultat, je te conseille de nommer la cellule qui contient la formule (ici E3 en la nommant par exemple Résultat) tu peux faire référence à Résultat# qui reprend la plage dynamique couverte par les résultats de la formule.
À bientôt
- 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