Macro sélection de ligne spéciale dans un tableau

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

P

paperaban

Guest
bonjour tout le monde,

j'ai un tableau excel dans lequel j'ai des caractéristiques avec leur résultats. Mon probléme mes caractéristiques se répétent plusieurs fois selon le nombre d'échantillon, je m'explique quand l'échantillon est de taille 5 la caractéristique se répéte 5 fois. Donc je veux juste la dernière ligne de chaque caractéristique (qui me donne aussi le nombre d'échantillon) dans une autre feuille. Merci voici un exemple du tableau
 

Pièces jointes

Re : Macro sélection de ligne spéciale dans un tableau

Bonjour Paperaban,
Voici mais avec macro, donc activer les macros à l'ouverture du fichier.
La macro est ....copiederniereligne
Bienvenu au forum pour ton 1er message.
Bruno
 

Pièces jointes

Re : Macro sélection de ligne spéciale dans un tableau

Bonjour, paperaban.

Sélectionner J2:J37
Code:
=SI(A2=A3;"";1)
Ctrl+entrée
Filtrer la colonne J sur les 1,
copier, coller dans la nouvelle feuille.
Si tu veux une macro, effectue cette opération une fois en activant l'enregistreur (Outil, macro, nouvelle macro.

Edit : Bonsoir, youky.
 
Dernière édition:
Re : Macro sélection de ligne spéciale dans un tableau-suite

bonjour tout le monde,
de retour encore, je sais!!!! merci en tout cas pour les précédents message. J'essaie d'ajouter une macro à mon fichier qui va me permettre de déplacer certaine colonne dans mon nouveau tableau crée par la première macro, c'est à dire déplacer la colonne A dans la colonne B, je parle bien bien de la colonne spécifique au tableau excel, inverser les colonne E et F, déplacer la colonne C dans la colonne J. Alors j'ai activé l'enregsitreur de macro j'ai fait la manipulation ensuite je l'ai enregistrée. Le problème je ne veux pas avoir 2 macros à la suite mais une seule qui va faire l'une après l'autre mais dans la feuil2 pour la deuxième macro au risque de modifier le tableau source si non créer les deux macros dans un autre fichier excel que je vais ouvrir pour l'exécuter dans une copie de mon fichier source (je préfére la deuxième mais au point ou j'en suis je n'ai pas le choix!!!).
Rappel: le fichier le bon fichier excel avec la bonne macro "selection dernière ligne" est celui de youky(BJ) c'est celui là que j'ai choisi mais les autres sont bon aussi. et la macro pour le déplacement des lignes, obtenue avec manipulation et enregstrement de la macor, est : Sub Deplacement()
'
' Deplacement Macro
' Macro enregistrée le 03/05/2011 par 1traore
'
' Touche de raccourci du clavier: Ctrl+b
'
Range("A2:A14").Select
Range("A2:A1000").Select
ActiveWindow.ScrollRow = 822
ActiveWindow.ScrollRow = 768
ActiveWindow.ScrollRow = 714
ActiveWindow.ScrollRow = 625
ActiveWindow.ScrollRow = 572
ActiveWindow.ScrollRow = 500
ActiveWindow.ScrollRow = 447
ActiveWindow.ScrollRow = 411
ActiveWindow.ScrollRow = 376
ActiveWindow.ScrollRow = 322
ActiveWindow.ScrollRow = 269
ActiveWindow.ScrollRow = 233
ActiveWindow.ScrollRow = 197
ActiveWindow.ScrollRow = 162
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 108
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 37
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 1
Range("A2:A1000").Cut Destination:=Range("B2:B1000")
Range("C2:C1000").Select
ActiveWindow.ScrollRow = 964
ActiveWindow.ScrollRow = 946
ActiveWindow.ScrollRow = 911
ActiveWindow.ScrollRow = 857
ActiveWindow.ScrollRow = 804
ActiveWindow.ScrollRow = 750
ActiveWindow.ScrollRow = 714
ActiveWindow.ScrollRow = 661
ActiveWindow.ScrollRow = 625
ActiveWindow.ScrollRow = 554
ActiveWindow.ScrollRow = 500
ActiveWindow.ScrollRow = 447
ActiveWindow.ScrollRow = 411
ActiveWindow.ScrollRow = 376
ActiveWindow.ScrollRow = 340
ActiveWindow.ScrollRow = 304
ActiveWindow.ScrollRow = 286
ActiveWindow.ScrollRow = 251
ActiveWindow.ScrollRow = 233
ActiveWindow.ScrollRow = 215
ActiveWindow.ScrollRow = 179
ActiveWindow.ScrollRow = 162
ActiveWindow.ScrollRow = 126
ActiveWindow.ScrollRow = 108
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 37
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 1
Selection.Cut Destination:=Range("J2:J1000")
Range("E2:E1000").Select
ActiveWindow.ScrollRow = 964
ActiveWindow.ScrollRow = 946
ActiveWindow.ScrollRow = 929
ActiveWindow.ScrollRow = 911
ActiveWindow.ScrollRow = 875
ActiveWindow.ScrollRow = 839
ActiveWindow.ScrollRow = 804
ActiveWindow.ScrollRow = 768
ActiveWindow.ScrollRow = 714
ActiveWindow.ScrollRow = 661
ActiveWindow.ScrollRow = 607
ActiveWindow.ScrollRow = 572
ActiveWindow.ScrollRow = 518
ActiveWindow.ScrollRow = 483
ActiveWindow.ScrollRow = 447
ActiveWindow.ScrollRow = 393
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 322
ActiveWindow.ScrollRow = 304
ActiveWindow.ScrollRow = 286
ActiveWindow.ScrollRow = 233
ActiveWindow.ScrollRow = 197
ActiveWindow.ScrollRow = 179
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 126
ActiveWindow.ScrollRow = 108
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 37
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 1
Range("E2:E1000").Cut Destination:=Range("G2:G1000")
Range("F2:G1000").Select
ActiveWindow.ScrollRow = 964
ActiveWindow.ScrollRow = 946
ActiveWindow.ScrollRow = 929
ActiveWindow.ScrollRow = 911
ActiveWindow.ScrollRow = 875
ActiveWindow.ScrollRow = 857
ActiveWindow.ScrollRow = 839
ActiveWindow.ScrollRow = 804
ActiveWindow.ScrollRow = 768
ActiveWindow.ScrollRow = 714
ActiveWindow.ScrollRow = 661
ActiveWindow.ScrollRow = 625
ActiveWindow.ScrollRow = 590
ActiveWindow.ScrollRow = 536
ActiveWindow.ScrollRow = 500
ActiveWindow.ScrollRow = 465
ActiveWindow.ScrollRow = 429
ActiveWindow.ScrollRow = 393
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 322
ActiveWindow.ScrollRow = 269
ActiveWindow.ScrollRow = 251
ActiveWindow.ScrollRow = 215
ActiveWindow.ScrollRow = 179
ActiveWindow.ScrollRow = 162
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 126
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 37
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 1
Selection.Cut Destination:=Range("E2:F1000")
Range("E2:F1000").Select
End Sub

le message est long mais c'est juste pour être clair. Merci d'avance
 

Pièces jointes

Re : Macro sélection de ligne spéciale dans un tableau

Re 🙂,
J'avoue que lorsque je vois ton code, brut de décofrage, je regrette que tu n'aie pas préféré ma méthode par formule, qui, adaptée au niveau des colonnes, permettaient d'atteindre le résultat souhaité 🙄... Beaucoup plus adaptée, d'ailleurs, à un débutant Excel que ne l'est VBA 😱...
Mais bon, ton code, (très) épuré et adapté dans la méthode de Youki(BJ) pourrait donner ça, à tester 😛...
Code:
Sub copiederniereligne()
Feuil1.Select
tx = [A2]: k = 2
Feuil2.[A2:I10000].Clear
For lig = 2 To [A65536].End(3).Row + 1
If Cells(lig, 1) <> tx Then
Feuil2.Range("A" & k & ":I" & k).Value = _
Feuil1.Range("A" & lig - 1 & ":I" & lig - 1).Value
k = k + 1: tx = Range("A" & lig)
End If
Next
With Feuil2
.Range("A2:A1000").Cut .Range("B2:B1000")
.Range("C2:C1000").Cut .Range("J2:J1000")
.Range("E2:E1000").Cut .Range("G2:G1000")
.Range("F2:G1000").Cut .Range("E2:F1000")
End With
End Sub
Bon courage 😎
 
Re : Macro sélection de ligne spéciale dans un tableau

Bonjour JNP,
désolé de n'avoir pas pris votre programme c'est juste que votre formule me sélectionne que la première ligne de la caractéristique alors que moi je veux la dernière ligne de chaque élément (quelque soit le nombre de fois qu'il est répété!!) parce quelle me donne le nombre d'échantillon utilisé. Pour votre proposition je vais la tester tout de suite. Merci
 
Re : Macro sélection de ligne spéciale dans un tableau

Re 🙂,
c'est juste que votre formule me sélectionne que la première ligne de la caractéristique alors que moi je veux la dernière ligne de chaque élément (quelque soit le nombre de fois qu'il est répété!!) parce quelle me donne le nombre d'échantillon utilisé.
Tu ne dois pas avoir vraiment regardé mon fichier, c'est exactement ce que fait ma formule, elle ramène la dernière ligne, et non pas la première 🙄...
Bonne journée 😎
 
Re : Macro sélection de ligne spéciale dans un tableau

Bonjour JNP,
j'ai pris votre macro et ça marche très bien avec le déplacement des lignes.
j'ai un autre problème à soumettre à tout le monde bien sûr. Dans mon tableau Feuil2 je veux calculer la différence entre la tolérence + (Tol+) et la colonne nominale et la différence entre la tolérence - (Tol-) et la colonne nominale. Par exemple pour Tol- calculer 83,8-86,4 (nominal) et afficher ça dans la cellule contenant la valeur 83,8 (E10). Le même exemple pour Tol+ calculer 89-86,4 (nominal) et afficher le resultat dans la cellule contenant 89 (F10); e ceci pour toutes les cellules de la colonne Tol- et Tol+. Cette macro doit être dans la même macro que l'autre et s'exécute juste après sans que j'ai à exécuter à nouveau une macro. J'espère avoir été assez clair (pas facile de se faire comprendre!!). Merci à tout le monde
 

Pièces jointes

Re : Macro sélection de ligne spéciale dans un tableau

Re 🙂,
Désolé, mais j'ai juste corrigé la macro a passage 😛.... Vu la complexité des calculs, la solution de départ pour passer par des formules me parait toujours la bonne direction, mais vu qu'elle ne t'intéresse pas, personnellement, je ne vois pas l'intérêt de complexifier en macro alors que tu ne maitrises pas du tout le VBA, et que le type de calcul sera très complexe en programmation 😱.
Je jettes l'éponge 😉.
Bon courage 😎
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
655
Retour