Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraction de lignes filtrées

13 réponses
Avatar
f4crw
Bonjour à toutes et à tous
J'ai créé une base de données avec Excel 2000 pour mon association, dans
cette base j'ai fait une macro qui me permet de ressortir les informations
de chaque membre sur une autre feuille qui est une fiche de membre, sur
cette fiche je dispose d'un bouton suivant et d'un précédent qui me
permettent de passer d'un membre à un autre en passant à la ligne suivante
de ma base.
La macro fonctionne très bien sauf quand cette base est filtrée avec le
filtre automatique elle continu à m'afficher toutes les fiches.
Ma question est la suivante comment n'afficher que les fiches des lignes
visibles de la base filtrée sans les recopiés dans une autre feuille ?
Merci d'avance de votre aide.
Régis

3 réponses

1 2
Avatar
f4crw
Impeccable

voici le code du bouton suivant

Sub suivant() 'macro du bouton suivant dans la feuille fiche
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est sélectionnée
puisqu'une fiche a déjà été crée
ActiveCell.Offset(1, 0).Range("A1").Select ' descend d'une
ligne

Do Until ActiveCell.EntireRow.Hidden = False
'si la ligne est masquée
ActiveCell.Offset(1, 0).Range("A1").Select
' descend d'une ligne
Loop

Call RemplirFiche1 'c'est la macro qui copie les données et les
places dans la fiche si la ligne est visible

'la macro stop dans la feuille Fiche
End Sub

Merci beaucoup Daniel ça marche très bien filtrée ou pas.
Il ne me reste qu'à faire la même pour le bouton précédant
Régis




"Daniel.C"
Essaie :

Sub suivant() 'macro du bouton
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est sélectionnée
puisqu'une fiche a déjà été crée
Do Until ActiveCell.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
'je croix que le code serait à placer ici si la ligne est visible

'Call RemplirFiche1 'copie les données et les places dans la
fiche
Var = ActiveCell
ActiveCell.Offset(1, 0).Range("A1").Select
'et faire une boucle je suppose " je compte sur toi, car je ne sais pas
faire en dehors des Goto "
End Sub

Daniel

Sur la feuille "fiche"

"Daniel.C"
Les boutons se trouvent sur quelle feuille ?
Daniel

Bonjour,
voici le code du bouton suivant

Sub suivant() 'macro du bouton
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est
sélectionnée puisqu'une fiche a déjà été crée
ActiveCell.Offset(1, 0).Range("A1").Select
'je croix que le code serait à placer ici si la ligne est visible

Call RemplirFiche1 'copie les données et les places dans la
fiche

ActiveCell.Offset(1, 0).Range("A1").Select 'si la ligne
n'est pas visible
'et faire une boucle je suppose " je compte sur toi, car je ne sais pas
faire en dehors des Goto "

End Sub

Merci beaucoup
Régis



"Daniel.>> L'idéal serais de lui dire si cette ligne n'est pas visible
descend d'une
ligne, ou si cette ligne est visible continue, mais est ce que c'est
possible



Bonjour.
C'est possible en utilisant :
c.EntireRow.Hidden = True
qui indique une ligne masquée, où "c" est une cellule de la plage
filtrée. Le problème est que tu es obligé d'examiner toutes les lignes
de ta plage et que, si celle-ci est importante, l'exécution va être
ralentie.
Sinon, poste le code de tes boutons et je le modifierai.
Daniel
















Avatar
Daniel.C
J'ai oublié d'arrêter le défilement à la première cellule vide; c'est
rectifié :

Sub suivant() 'macro du bouton
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est
sélectionnée puisqu'une fiche a déjà été crée
'si la cellule est vide on revient sur la feuille fiche
et on arrête la macro
If ActiveCell = "" Then
Sheets("fiche").Select
Exit Sub
End If
Do Until ActiveCell.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
'je croix que le code serait à placer ici si la ligne est visible

Call RemplirFiche1 'copie les données et les places dans la
fiche
ActiveCell.Offset(1, 0).Range("A1").Select
'et faire une boucle je suppose " je compte sur toi, car je ne sais pas
faire en dehors des Goto "
End Sub
Daniel

Essaie :

Sub suivant() 'macro du bouton
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est sélectionnée
puisqu'une fiche a déjà été crée
Do Until ActiveCell.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
'je croix que le code serait à placer ici si la ligne est visible

'Call RemplirFiche1 'copie les données et les places dans la fiche
Var = ActiveCell
ActiveCell.Offset(1, 0).Range("A1").Select
'et faire une boucle je suppose " je compte sur toi, car je ne sais pas faire
en dehors des Goto "
End Sub

Daniel

Sur la feuille "fiche"

"Daniel.C"
Les boutons se trouvent sur quelle feuille ?
Daniel

Bonjour,
voici le code du bouton suivant

Sub suivant() 'macro du bouton
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est sélectionnée
puisqu'une fiche a déjà été crée
ActiveCell.Offset(1, 0).Range("A1").Select
'je croix que le code serait à placer ici si la ligne est visible

Call RemplirFiche1 'copie les données et les places dans la
fiche

ActiveCell.Offset(1, 0).Range("A1").Select 'si la ligne
n'est pas visible
'et faire une boucle je suppose " je compte sur toi, car je ne sais pas
faire en dehors des Goto "

End Sub

Merci beaucoup
Régis



"Daniel.>> L'idéal serais de lui dire si cette ligne n'est pas visible
descend d'une
ligne, ou si cette ligne est visible continue, mais est ce que c'est
possible



Bonjour.
C'est possible en utilisant :
c.EntireRow.Hidden = True
qui indique une ligne masquée, où "c" est une cellule de la plage
filtrée. Le problème est que tu es obligé d'examiner toutes les lignes
de ta plage et que, si celle-ci est importante, l'exécution va être
ralentie.
Sinon, poste le code de tes boutons et je le modifierai.
Daniel










Avatar
f4crw
Dans mon cas ce n'est pas nécessaire c'est la maco RemplirFiche1 qui s'en
charge à son début.
Comme je te l'ai écrit dans mon précédent message ça marche très bien
filtrée ou pas.

Merci quand même
Régis


"Daniel.C" > J'ai oublié d'arrêter le défilement à la première cellule vide;
c'est
rectifié :

Sub suivant() 'macro du bouton
' Macro enregistrée le 02/11/2009 par Régis
Application.ScreenUpdating = False 'Fige l'écran
Sheets("Adresses").Select 'qui est la base

'quand on arrive dans la feuille "Adresses" une cellule est sélectionnée
puisqu'une fiche a déjà été crée
'si la cellule est vide on revient sur la feuille fiche et on
arrête la macro
If ActiveCell = "" Then
Sheets("fiche").Select
Exit Sub
End If
Do Until ActiveCell.EntireRow.Hidden = False
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
'je croix que le code serait à placer ici si la ligne est visible

Call RemplirFiche1 'copie les données et les places dans la
fiche
ActiveCell.Offset(1, 0).Range("A1").Select
'et faire une boucle je suppose " je compte sur toi, car je ne sais pas
faire en dehors des Goto "
End Sub
Daniel



1 2