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