VBA: sélection données

Mimix

XLDnaute Nouveau
Bonsoir,

Je souhaite sélectionner et copier les lignes d'un tableau en fonction de la valeur d'une cellule spécifiée puis les coller sur une autre feuille.
Après diverses recherches sur Internet, j'ai adapté une procédure qui marche parfaitement sur un tableau test.

Code:
Sub SelectCellulesValeurDeterminee()
Worksheets("Données Janvier 2009").Activate
Range("A1").Select
For Each cll In ActiveCell.CurrentRegion
      If cll.Value = "MARSEILLE" Or cll.Value = "BORDEAUX" Then Plg = Plg & cll.Row() & ":" & cll.Row() & ","
      If cll.Value = "MARSEILLE" Or cll.Value = "BORDEAUX" Then cll.Interior.Color = vbBlue
Next cll
If Len(Plg) > 0 Then Range(Left(Plg, Len(Plg) - 1)).Select
Selection.Copy Worksheets("REGION SUD").[A2]

End Sub

Lorsque j'ai voulu l'appliquer sur mon cas et fait les changements nécessaires, cela ne fonctionne plus de tout: la procédure n'arrive pas à sélectionner les lignes désirées et dans le nouveau tableau, elle se contente de copier la cellule A1 sur A2.
J'ai beau vérifier, cela ne marche pas: s'agit-il d'un problème de données par hasard? En effet, la feuille que j'exploite est une extraction.

Merci par avance pour votre aide
 

Mimix

XLDnaute Nouveau
Re : VBA: sélection données

Re :),
Certes, mais trouver l'erreur dans un fichier qui marche :p...
Je ne sais pas quoi te dire :eek:...
Tu peux très bien virer les données confidentielles en les remplaçant par des Toto et de 03 03 03 03 03 ;)...
Bon courage :cool:

Bonjour JNP,

J'ai modifié les données dans mon fichier et là ça ne marche pas :(
L'erreur peut-elle provenir du fait que mon extraction contienne plusieurs lignes (1220) alors que sur le fichier qui marche n'en contienne qu'une dizaine?

J'ai fait des recherches et faut-il passer par un filtre élaboré afin de contourner ce problème? Par contre, je ne sais pas trop comment le coder:
- peux-t-on définir plusieurs critères de filtres (plus de 3) ?
- peux-t-on coder sans avoir à écrire une zone de critères?

Mon fichier étant trop gros,je ne suis pas parvenue à le mettre en pièces jointes ni à insérer l'url. Je ne sais pas si je suis autorisée à le faire mais il est à cette adresse: http://dl.free.fr/qp8DRq7jg
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : VBA: sélection données

Re :),
Pas de problème, sinon, beaucoup utilisent ci-joint.fr ;).
En réalité, comme tu mérorises chaque ligne, je pense qu'on dépasse la capacité pour la sélection.
Avec ce code, tu augmenteras la sélection
Code:
Sub SelectCellulesValeurDeterminee()
Dim MaSelection As Range
Application.ScreenUpdating = False
      
    Worksheets(1).Activate
    Range("A1").Select
    
    For Each cll In ActiveCell.CurrentRegion
        If cll.Value Like "*Bordeaux*" Or cll.Value Like "*Paris*" Then
            If MaSelection Is Nothing Then
                Set MaSelection = Rows(cll.Row())
            Else
                Set MaSelection = Union(MaSelection, Rows(cll.Row()))
            End If
            cll.Interior.Color = vbBlue
        End If
    Next cll
    
    
    If Not MaSelection Is Nothing Then MaSelection.Copy Worksheets(2).[A2]
Application.ScreenUpdating = True
End Sub
Dis-moi ce que tu en penses.
A + :cool:
 

Mimix

XLDnaute Nouveau
Re : VBA: sélection données

Bonjour JNP,

Merci beaucoup, ça marche parfaitement.

En revanche, je ne comprends pas très bien le code et notamment ces 2 lignes:
Code:
If MaSelection Is Nothing Then
    Set MaSelection = Rows(cll.Row())

Que signifient les fonctions Is Nothing et Union?

En tout cas merci encore JNP de m'avoir aidée!
 

JNP

XLDnaute Barbatruc
Re : VBA: sélection données

Re :),
Comme je stocke dans un Range, c'est donc les cellules que je stocke. Donc, Union sert à ajouter la nouvelle ligne à mon Range. Mais Union plante si ma variable est vide, donc je regarde avant si elle est vide, soit Is Nothing ;).
A noter que pour des Range, Set est obligatoire pour "pousser" dans la variable :rolleyes:.
Bon courage, et content que ça fonctionne enfin :p.
A + :cool:
 

Discussions similaires

Réponses
6
Affichages
315
Réponses
3
Affichages
651

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12