Selection et copie de lignes

Résolu
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012 - 28 avril 2012 à 12:11
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 29 avril 2012 à 17:39
bonjour

voila je galère pour trouver les codes pour faire ce que je veux faire.

J'aimerai
- pouvoir sélectionner les lignes qui ont la même valeur dans la colonne A que la dernière ligne. sachant que le nombre de lignes peut varier et que la valeur dans la cellule (A dernière ligne) peut varier aussi
et
- copier cette sélection dans la feuille 2 (pour ça pas de pb)

exemple (sélectionner les lignes en rouge)
1 1 5 2 2
1 2 9 8 9
2 8 3 2 2
2 6 7 2 7
3 1 4 5 6
3 2 3 1 2
3 1 4 2 4


ou encore

1 1 5 2 2
1 2 9 8 9
2 8 3 2 2
2 6 7 2 7
5 1 4 5 6
5 2 3 1 2
5 1 4 2 4
5 2 2 9 8
5 2 4 9 1


merci d'avance de votre aide

Mélanie

13 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 avril 2012 à 17:39
Bien
Veux-tu alors bien "libérer" ce sujet ? (clique sur le tag "réponse acceptée")


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2012 à 13:24
Bonjour,
C'est quoi, dans VB6, une "colonne A", une "ligne", une "feuille", une "sélection" ?
Connais pas ! Peux-tu m'éclairer ?
PS : d'où l'absolue nécessité d'ouvrir une discussion non n'importe où, mais dans la section correspondant à son langage de développement.

Mon petit doigt (mais pourquoi diable devrait-il sans cesse intervenir ?) me dit que tu développes sous VBA/Excel


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012
28 avril 2012 à 13:39
ton petit doigt a raison!
oui désolée je développe sous VBA/excel enfin du moins j'essaye
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2012 à 13:50
J'attendrai alors qu'un gentil admin passe par là et déplace ta discussion.
J'attendrai alors également que tu clarifies ton exposé, qui ne permet absolument pas pour l'instant de comprendre en vertu de quoi tu sélectionnes ce que tu as mis en rouge


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012
28 avril 2012 à 14:53
en fait mon tableau est un exemple. la couleur était juste pour montrer la sélection attendue. en claire 'si on peut dire) toutes les lignes de mon tableur qui ont la même valeur dans la colonne A que la dernière ligne doivent être sélectionner pour être copier ailleurs
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
28 avril 2012 à 15:01
Bonjour,

Ucfoutu, le GA est passé (Gentil Admin :) ), tu as été entendu :)

As-tu déjà essayer quelquechose ?
Montres le code (voir le point 2 de ma signature).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012
28 avril 2012 à 16:06
disons que je débute en vba, j'arrive a selectionner la dernière avec ce code
Sub essai()
Sheets("Feuil1").Activate
Range(Range("a" & Rows.Count).End(xlUp).Rows, Range("E" & Rows.Count).End(xlUp).Rows).Select
Selection.Copy
Sheets("Feuil2").Activate
Range("A2").Activate
ActiveSheet.Paste


End Sub

mais voila mon niveau limité fait que je suis vite bloquée
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
28 avril 2012 à 16:31
Bonjour,

Évites de travailler pas Select, Activate, ...
Utilises directement le objets.

Sinon, essayes de faire 2 passes :
- La première, pour récupérer la dernière combinaison, puis
- Une deuxième avec une boucle pour partir de la première ligne puis descendre jusqu'à trouver l’occurrence recherchée.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2012 à 18:05
Voilà bien la preuve de la nécessité d'être clair,
Je t'avais dit :
J'attendrai alors également que tu clarifies ton exposé, qui ne permet absolument pas pour l'instant de comprendre en vertu de quoi tu sélectionnes ce que tu as mis en rouge

et niç ton 1er exposé du problème, ni ton explication complémentaire ne l'ont été.
Et voilà le résultat, donc. La réponse parfaitement légitime de NHenry :
La première, pour récupérer la dernière combinaison ...

CQFD
Car une ligne est une ligne, pas une cellule. Une ligne est composée de plusieurs cellules.
On va alors te poser la question essentielle, à la demande de mon petit doigt :
Ton problème serait-il le suivant (sans même un exemple) :

"coller à la suite, sur une feuil 2, toute ligne (totalité de la ligne) de la feuille 1 dont la cellule en colonne A contiendrait la même valeur que celle de la dernière cellule remplie de la colonne A"

Si oui : Plusieurs méthodes :
entre autres :
- Méthode Find en récursivité sur la colonne A
ou
- parcours de la colonne A à la recherche de ta valeur (boucle for.. to... next)
A chaque occurrence trouvée : Méthode Copy avec paramètre destination. En utilisant Entirerow
Ouvre ton aide VBA sur chacun des mots que j'ai soulignés. Lis.
Reviens, si encore difficulté, avec le code que tu as écrit sur ces bases.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012
29 avril 2012 à 16:16
j'ai essayé de suivre vos conseils mais franchement je galère. rien ne marche
help please

j'en suis là mais ça doit etre méga faux

Sub essai2()
Sheets("Feuil1").Activate
    
        For Counter = 1 To Range("A" & Rows.Count).End(xlUp).Row
        Set curcell = Worksheets("feuil1").Cells(Counter, 1)
        If Abs(curcell.Value) = Range("A1").End(xlDown) Then curcell.EntireRow.Copy
       Sheets("Feuil2").Activate
        Range("A1048576").End(xlUp).Offset(1, 0).Activate
       ActiveSheet.Paste
    Next Counter
End Sub
0
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012
29 avril 2012 à 17:10
j'ai mieux mais j'ai une erreur 1004 au niveau du collage
Sub essai2()
        Dim DerLigne As Long
        DerLigne = Range("A" & Rows.Count).End(xlUp).Row
            For Counter = 1 To DerLigne
        Set curcell = Worksheets("feuil1").Cells(Counter, 1)
        If Abs(curcell.Value) = Range("A1").End(xlDown) Then curcell.EntireRow.Copy
            ActiveSheet.Paste Destination:=Sheets("feuil2").Range("A1048576").End(xlUp).Offset(1, 0)
            Next Counter
End Sub




0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 avril 2012 à 17:20
Commence à travailler en pointant directement vers les objets. Cesse d'y aller à coups de select, activate, activesheet, etc ...
Regarde cet exemple vite fait :

 With Sheets("Feuil1")
     derlig = .Range("A" & Rows.Count).End(xlUp).Row
     maval = .Range("A" & derlig).Value
     For counter = 1 To derlig
       If .Range("A" & counter) = maval Then
         .Rows(counter).Copy Destination:=Sheets("Feuil2").Range("A" & Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row + 1)
        End If
    Next counter
  End With

et mets-le à ta sauce, notamment en ce qui concerne ton utilisation de valeurs absolues.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_melanie86 Messages postés 7 Date d'inscription samedi 28 avril 2012 Statut Membre Dernière intervention 29 avril 2012
29 avril 2012 à 17:27
aaaaaaaaaaa trop bien
merci ca marche nikel. en effet c'est plus simple
0
Rejoignez-nous