Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : copier sous condition

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

Z

Zaffe

Guest
Bonjour à tous,

Mon problème est tout simple mais je n'arrive pas a trouver de solution.
J'aimerais que dans la feuille 3 apparaissent le nom des villes de la feuille 1 et 2 sachant que des villes sont à la fois dans la feuille 1 et la feuille 2 mais ne doivent apparaitre qu'une fois.

J'ai en réalité 4 onglets de 65000 lignes avec 70% de doublon, je voudrais donc faire ressortir une liste des quatres onglets sans doublon.

Je travaille sur du VBA mais étant débutant ... j'ai pas réussi à trouver de solution. :'(
 

Pièces jointes

  • ex.xls
    ex.xls
    18.5 KB · Affichages: 68
  • ex.xls
    ex.xls
    18.5 KB · Affichages: 70
  • ex.xls
    ex.xls
    18.5 KB · Affichages: 69
Re : VBA : copier sous condition

Bonjour Zaffe,
Une proposition sur la base d'un code de Boisgontier.
Toutes les villes des deux feuilles, triées et sans doublons sur la troisième.
Attention Toulouse apparait deux fois car une saisie "Toulouse" et une saisie "Toulouse ".
Cordialement
 

Pièces jointes

Re : VBA : copier sous condition

Je vais peux être dire une grosse connerie mais qui dois montrer mon niveau en VBA... C'est quoi la différence entre un module et le code dans une feuille ?

Ca marche ! Merci beaucoup, ca me soulage, j'étais au bord de la crise de nerf ...
 
Dernière modification par un modérateur:
Re : VBA : copier sous condition

Re Zaffe,
Ce n'est pas une C_ _ _ _ _ _ e.
Un Module renferme une macro utilisable depuis toutes les feuilles.
Le code de la feuille est généralement utilisé pour les macros qui ne concernent que la feuille qui les contient.
Cordialement
 
Re : VBA : copier sous condition

Re Zaffe,
Ce n'est pas une C_ _ _ _ _ _ e.
Un Module renferme une macro utilisable depuis toutes les feuilles.
Le code de la feuille est généralement utilisé pour les macros qui ne concernent que la feuille qui les contient.
Cordialement

Je m'en doutais... c'était logique finalement.Faut-il faire appel au code qui se trouve dans un module ou il s'effectue automatiquement.
J'ai commencer le VBA il y a un mois, je dois apprendre par moi même mais on me demande de faire des actions que je suis incapable de faire par contre du coup petit à petit j'arrive à faire des actions simples...

En tout cas merci beaucoup pour ton aide
 
Re : VBA : copier sous condition

Re
Pour lancer directement un code dans un module, en général on utilise un bouton (voir mon dernier fichier).
Si c'est nécessaire on peut aussis activer le code à l'affichage de la feuille par exemple, mais là on mettra le code dans le "code de la feuille" et on utiliser en début de macro :
Code:
Private Sub Worksheet_Activate()
A la place de
Code:
Sub Test()
Tout dépend de l'utilisation qui en sera faite.
Donne plus d'explications et il y aura surement quelqu'un pour t'aiguiller.
Cordialement
 
Re : VBA : copier sous condition

Oui on m'a déjà aider plusieurs fois, sans le forum ... je sais pas ou j'en serais lol. J'essaye à chaque fois de chercher par moi même, puis de donner un exemple basique que se rapproche du mien pour que ca ne vous prenne pas trop de temps et que ca m'oblige à l'adapter et donc comprendre au moins une partie du code à l'intérieur.

Encore merci
 
Re : VBA : copier sous condition

Une seconde question comment faire pour copier une plage de donnée avec ce code :

Private Sub maj_Click()
Dim ShtTrav As Worksheet
Dim FeuillesSource As Variant
Dim CptFeuil As Byte

FeuillesSource = Array("P1-09", "P2-09", "P3-09", "P4-09")

Range("A5:J" & Range("J5").End(xlDown).Row).ClearContents

Set ShtTrav = ThisWorkbook.Sheets.Add

For CptFeuil = 0 To UBound(FeuillesSource)
With Sheets(FeuillesSource(CptFeuil))
.Range("E6:J" & .Range("J65536").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ShtTrav.Range("A" & ShtTrav.Range("A65536").End(xlUp).Row + 1), Unique:=True
End With
Next CptFeuil

ShtTrav.Range("A2:A" & ShtTrav.Range("A65536").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A5"), Unique:=True

Application.DisplayAlerts = False
ShtTrav.Delete
Application.DisplayAlerts = True
Set ShtTrav = Nothing
End Sub


Sachant qu'il ne doit supprimer les doublon que sur la colonne 1
 
Dernière modification par un modérateur:
Re : VBA : copier sous condition

Salut,

A verifier:
Code:
Option Explicit

Private Sub CommandButton1_Click()
    Dim ShtTrav As Worksheet
    Dim FeuillesSource As Variant
    Dim CptFeuil As Byte
    
    FeuillesSource = Array("P1-09", "P2-09", "P3-09", "P4-09")
    
    Range("A5:F" & Range("A5").End(xlDown).Row).ClearContents
    
    Set ShtTrav = ThisWorkbook.Sheets.Add
    
    For CptFeuil = 0 To UBound(FeuillesSource)
        With Sheets(FeuillesSource(CptFeuil))
           .Range("E6:J" & .Range("E65536").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ShtTrav.Range("A" & ShtTrav.Range("A65536").End(xlUp).Row + 1), Unique:=True
        End With
    Next CptFeuil
    
    ShtTrav.Range("A2:F" & ShtTrav.Range("A65536").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A5"), Unique:=True
    
    Application.DisplayAlerts = False
    ShtTrav.Delete
    Application.DisplayAlerts = True
    Set ShtTrav = Nothing
End Sub
 
Re : VBA : copier sous condition

Merci beaucoup, j'avais finalement trouvé une solution mais elle me rajoutait des lignes vides au fur et à mesure des mises à jour.

Je profite du post pour poser une question VBA qui n'a rien à voir, quelqu'un sait comment récuperer la valeur d'un label pour l'inserer dans un textbox qui se trouve dans un userform 😱
 
Re : VBA : copier sous condition

Bonjour à tous,
Zaffe, il est préférable d'appliquer la règle : Nouvelle question = Nouveau Fil, si non ce fil va faire 1 000 pages pour 200 questions et personne ne s'y retrouvera plus (en particulier lors de recherches sur le forum).
Pensez y 🙂.
Cordialement
 
- 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
5
Affichages
288
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…