Récupérer Valeur d'une ligne dont une cellule est non-vide

wapadou

XLDnaute Nouveau
Bonjour et bonne année 2015 !!

J'aimerais récupérer les valeurs d'une ligne quand une de ces cellules est = "Yes".
Et les coller dans un nouvel onglet, avec ajout ligne par ligne.

Voici un exemple et Merci beaucoup.
 

Pièces jointes

  • Test v2.xlsx
    12.9 KB · Affichages: 34
  • Test v2.xlsx
    12.9 KB · Affichages: 39
  • Test v2.xlsx
    12.9 KB · Affichages: 39

DoubleZero

XLDnaute Barbatruc
Re : Récupérer Valeur d'une ligne dont une cellule est non-vide

Bonjour, wapadou, le Forum,

Bonne année, itou !

Un essai, avec ce code placé dans le module de l'onglet "Issue" :

Code:
Option Explicit
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With ActiveSheet
        .[a:g].Clear
        .[a1] = "Issue"
        .[a2] = "yes"
        Sheets("Data").Columns("a:g").AdvancedFilter Action:=xlFilterCopy, _
                                                     CriteriaRange:=.Range("a1:a2"), CopyToRange:=.Range("c1"), Unique:=False
        .[a:b].Delete
    End With
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

wapadou

XLDnaute Nouveau
Re : Récupérer Valeur d'une ligne dont une cellule est non-vide

Merci cela fonctionne.

Juste un petit hic, a chaque retour entre les 2 onglets une colonne disparaît à chaque fois dans l'onglet "Issue"
Et j'ai supprimer le fait de suppr les données dans l'onglet "Data"
 

DoubleZero

XLDnaute Barbatruc
Re : Récupérer Valeur d'une ligne dont une cellule est non-vide

Re-bonjour,

Remplacer le code visé supra par celui-ci :

Code:
Option Explicit
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With ActiveSheet
        .[a:b].Insert
        .[c:i].Clear
        .[a1] = "Issue"
        .[a2] = "yes"
        Sheets("Data").Columns("a:g").AdvancedFilter Action:=xlFilterCopy, _
                                                     CriteriaRange:=.Range("a1:a2"), CopyToRange:=.Range("c1"), Unique:=False
        .[a:b].Delete
    End With
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

Si...

XLDnaute Barbatruc
Re : Récupérer Valeur d'une ligne dont une cellule est non-vide

salut

Le fichier joint est en .xlsx donc créé avec une version 2007 ou plus.
Si… tu le permets :D;),
on peut alors profiter de la fonction Tableau qui procure bien des avantages notamment celui de ne pas se casser le bec sur son emplacement.
Cela pourrait donner

VB:
Option Explicit
Private Sub Worksheet_Activate()  	'à sa sélection
  [Ta].AutoFilter 7, "<>"		    'Ta (tableau des données) filtré colonne 7 sans vide
  [Ta].SpecialCells(12).Copy [A2]	'copie des lignes visibles dans cet onglet
  [Ta].AutoFilter			        'suppression du mode filtrage
End Sub

Avec en complément pour alléger le fichier si nécessaire et, surtout, une remise à zéro après modification du tableau
VB:
Private Sub Worksheet_Deactivate()
  Rows("2:65000").Delete
End Sub

A défaut d’en faire bon usage, bonne année Excel à vous tous
 

Pièces jointes

  • FiltreTableau.xlsm
    22.1 KB · Affichages: 38

DoubleZero

XLDnaute Barbatruc
Re : Récupérer Valeur d'une ligne dont une cellule est non-vide

Re-bonjour, bonjour et Excellente Année, Si:D:D:D

... Si… tu le permets :D;)...

Naturellement ;) et avec grand plaisir !

S'il faut tenir compte de ceci, mentionné en #1 :

récupérer les valeurs d'une ligne quand une de ces cellules est = "Yes"

et non du titre de la discussion :

Récupérer Valeur d'une ligne dont une cellule est non-vide

ton superbe code pourrait devenir :

Code:
Option Explicit
Private Sub Worksheet_Activate()
' Merci Si...
  [Ta].AutoFilter 7, "yes" 's'il ne faut reporter que les lignes où "yes" figure en colonne g
  [Ta].SpecialCells(12).Copy [A2]
  [Ta].AutoFilter
End Sub
Private Sub Worksheet_Deactivate()
  Rows("2:" & Rows.Count).Delete
End Sub

A bientôt :):)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87