Comparaison

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:

job75

XLDnaute Barbatruc
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

  • Moreno(2).xls
    67.5 KB · Affichages: 19
Dernière édition:

Staple1600

XLDnaute Barbatruc
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 ;)
 

job75

XLDnaute Barbatruc
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

  • Moreno(2 bis).xls
    77 KB · Affichages: 26

Lone-wolf

XLDnaute Barbatruc
Re : Comparaison

bonjour tout le monde :D

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 :cool:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
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]
 

Lone-wolf

XLDnaute Barbatruc
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?? :eek: . Mince... encore un SI :eek:.

@Si... : SI tu passe par là, regarde, on te fais de la PUB. ;) :D


A+ :cool:
 

Discussions similaires

Réponses
6
Affichages
526
Réponses
2
Affichages
488
Réponses
6
Affichages
600