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

Moreno076

XLDnaute Impliqué
Bonsoir.

Ci-joint j'ai un fichier excel avec 2 feuilles.

La première contient une colonne nommée "code".
Je souhaiterais que sur une troisième feuille, la ligne entière correspondant au code de la feuille1 soit recherchée dans la feuille 2. et inscrite entière.

Pouvez-vous m'aider svp.
 
Dernière édition:
Re : Comparaison

Bonjour le fil, le forum,

Une macro plus complète :

Code:
Sub Filtrer()
'Feuil1 Feuil2 Feuil3 sont les CodeNames des feuilles
Dim i%, ad1$, ad2$
Application.ScreenUpdating = False
With Feuil2.[A1].CurrentRegion
  Feuil3.Cells.Clear 'RAZ
  For i = 1 To .Columns.Count
    Feuil3.Columns(i).ColumnWidth = .Columns(i).ColumnWidth
  Next
  ad1 = Feuil1.[A1].CurrentRegion.Address(, , , True)
  ad2 = .Cells(2, 1).Address(0)
  .Cells(2, .Columns.Count + 1) = "=COUNTIF(" & ad1 & "," & ad2 & ")"  'critère en F2
  .AdvancedFilter xlFilterCopy, .Cells(1, .Columns.Count + 1).Resize(2), Feuil3.[A1]
  .AdvancedFilter xlFilterInPlace, ""
  .Cells(2, .Columns.Count + 1) = ""
End With
End Sub
Fichier (2), la macro se déclenche quand la 3ème feuille est activée.

A+
 

Pièces jointes

Dernière édition:
Re : Comparaison

Bonjour à tous

Job75 (salut 😉)
Tu n'as pas peur d'un éventuel écueil en utilisant CurrentRegion ?
(en cas de "trous" dans les cellules)
Tu pencherais pas pour un truc du genre pour palier cet éventuel souci?
With Union(Feuil2.UsedRange, Feuil2.UsedRange.Columns(5))

PS: Tu me diras cela ne règle pas le problème des "trous intermédiaires" complétement 😉
 
Re : Comparaison

Hello Jean-Marie 🙂

En cas de "trous" on peut en effet utiliser les UsedRange :

Code:
Sub Filtrer()
'Feuil1 Feuil2 Feuil3 sont les CodeNames des feuilles
Dim i%, ad1$, ad2$
Application.ScreenUpdating = False
With Feuil2.UsedRange
  Feuil3.Cells.Clear 'RAZ
  For i = 1 To .Columns.Count
    Feuil3.Columns(i).ColumnWidth = .Columns(i).ColumnWidth
  Next
  ad1 = Feuil1.UsedRange.Columns(1).Address(, , , True)
  ad2 = .Cells(2, 1).Address(0)
  .Cells(2, .Columns.Count + 1) = "=COUNTIF(" & ad1 & "," & ad2 & ")"  'critère en F2
  .AdvancedFilter xlFilterCopy, .Cells(1, .Columns.Count + 1).Resize(2), Feuil3.[A1]
  .AdvancedFilter xlFilterInPlace, ""
  .Cells(2, .Columns.Count + 1) = ""
End With
End Sub
Fichier (2 bis)

A+
 

Pièces jointes

Re : Comparaison

bonjour tout le monde 😀

et pourquoi ne pas ajouter ceci :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address ="$C$4" Then Feuil3.Activate
End Sub


Très bonne journée à tous 😎
 
Dernière édition:
Re : Comparaison

Bonjour à tous

Lone-Wolf
et pourquoi ne pas ajouter ceci :
[opinion personnelle et non pas critique personnelle]
Parce que c'est inutile, non ?
Il suffit de cliquer sur l'onglet Comparaison
(Donc bouger la souris pour aller en C4 ou cliquer sur l'onglet, c'est du pareil au même, non ?
Cela fait toujours "un clic"
[/opinion personnelle et non pas critique personnelle]
 
Re : Comparaison

Bonjour Jean-Marie, job75

Oooh combien de SI pour un petit rien; d'autant que ce n'était juste q'une proposition, et donc non obligatoire.

Et SI de C4 à CC65536 il n'y avait rien?? 😱 . Mince... encore un SI 😱.

@Si... : SI tu passe par là, regarde, on te fais de la PUB. 😉 😀


A+ 😎
 
- 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

Discussions similaires

Réponses
17
Affichages
838
D
  • Question Question
Réponses
5
Affichages
250
Didierpasdoué
D
Retour