Debut & fin de plage pour une colonne
Noha-Diak
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je sollicite votre aide, mon problème est le suivant : en VBA sur une feuille de calcul excel j'aimerais connaitre sur la colonne A la première cellule qui contient le nom "aaa" et la dernier cellule qui contient le nom "aaa" afin d'optimiser mon programme qui contient + de 7000 ligne, l'objectif est que lorsque le nom contenu dans la colonne A n'est plus identique on passe a suivant nom "bbb" qui correspond a la suivante plage, le fichier est trié de A à Z pour cette colonne.
la question est de savoir s'il exis
te une fonctionnalité permettant cela autre qu'une condition merci
la question est de savoir s'il exis
A voir également:
- Debut & fin de plage pour une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Fin des zfe - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
4 réponses
Bonjour Noha, bonjour le forum,
Double-clique sur n'importe quelle cellule de la colonne A, une message indique la première et la dernière ligne contenant la valeur double-cliquée. Code à placer dans le composant de l'onglet concerné :
Double-clique sur n'importe quelle cellule de la colonne A, une message indique la première et la dernière ligne contenant la valeur double-cliquée. Code à placer dans le composant de l'onglet concerné :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim LD As Long 'déclare la variable LD (Ligne du Début) Dim LF As Long 'déclare la variable LF (Ligne de Fin) If Target.Column <> 1 Then Exit Sub 'si le boucle-clic a lieu ailleurs qu'en colonne A, sort de la procédure If Target.Value = "" Then Exit Sub 'si le double-clic a lieur dans une celluel vide, sort de la procédure Cancel = True 'annule le mode [édition] lié au double-clic TV = Range("A1").CurrentRegion 'définit le tableau des valeurs TV For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs 'si la donnée ligne I colonne 1 de TV est égale à la valeur de la cellule double-cliquée, définit la ligne de debut LD et sort de la boucle If TV(I, 1) = Target.Value Then LD = I: Exit For Next I 'prochaine ligne de la boucle For I = LD To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs (en partant de la ligne LD) If I = UBound(TV, 1) Then LF = I 'si I est la derniere ligne du tableau des valeur, définit la ligne de fin LF 'si la donnée ligne I colonne 1 de TV est différente de la valeur de la cellule double-cliquée, définit la ligne de fin LF (I-1) et sort de la boucle If TV(I, 1) <> Target.Value Then LF = I - 1: Exit For Next I 'prochaine ligne de la boucle MsgBox LD & " / " & LF 'message qui affiche la lgne de début et la ligne de fin End Sub
Bonjour à tous les deux
Avec deux fonctions
Cdlmnt
Avec deux fonctions
Public Function premli(plage As Range, s As String) As Long Dim obj As Object premli = 0 Set obj = plage.Find(s, , , xlWhole, , xlNext) If Not obj Is Nothing Then premli = obj.Row End Function Public Function dernli(plage As Range, s As String) As Long Dim obj As Object dernli = 0 Set obj = plage.Find(s, , , xlWhole, , xlPrevious) If Not obj Is Nothing Then dernli = obj.Row End Function
Cdlmnt
Et si tu veux la liste des couples (première ligne, dernière ligne) pou un texte donné
https://www.cjoint.com/c/HJsoEe6jyfB
Cdlmnt
https://www.cjoint.com/c/HJsoEe6jyfB
Cdlmnt
Hello,
J'ai l'impression que ta fonction lpd ne marche pas correctement lorsque les données sont triées par ordre A->Z (comme indiqué dans la demande de l'utilisateur).
Il m'ajoute systématiquement une plage supplémentaire (la première ligne vide du tableau) pour les aaa et les bbb
et pour les ccc il retire 1 à la dernière ligne

J'ai l'impression que ta fonction lpd ne marche pas correctement lorsque les données sont triées par ordre A->Z (comme indiqué dans la demande de l'utilisateur).
Il m'ajoute systématiquement une plage supplémentaire (la première ligne vide du tableau) pour les aaa et les bbb
et pour les ccc il retire 1 à la dernière ligne
