Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro a l'ouvertute d'une feuille

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

M

Marion

Guest
Bonjour au forum

quelle galère, je n'y arrive pas

a l'ouverture d'une feuille (saisie quantite) je déclache une macro 'macrotest la c'est bon.

cette macro a pour but de demasque la colonne B d'aller sur la feuille base de copier en a6 a1000 de revenir sur la feuille (saisie de quantite) de coller en b5 et d'efffectuer le trie

ça ne marche pas mais alors pas du tout.


de l'aide s'il vous plait.

Merci de vos réponse

je joins un fichier

A+Marion [file name=marion11.zip size=8746]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/marion11.zip[/file]
 

Pièces jointes

Bonjour Creepy.
Merci pour ta réponse, mais ça ne fonctionne pas le code doit se déclancher a l'ouverture de la feuille 'saisie quantité'

de plus mon code ne va pas car il fait une boucle au retour de la 'feuille base' vers ' la feuille saise quantite'


désolée j'aurais tant aimé que ça marche


merci quand même

A+Marion
 
Salut Marion !

Il y a une toute petite erreur qui vient de la commande 'Select'.

Premièrement, il n'y a pas toujours besoin de Selectionner des cellules ou des feuilles pour les modifier.

En effet, les Activer avec Activate est largement suffisant et souvent même, pas besoin d'activer, non plus.

Deuxièmement, dans ta macro, voilà l'erreur :

Sheets('SAISIE QUANTITE').Select
Columns('B:B').EntireColumn.Hidden = False

On ne peut pas Selectionner un objet caché, par contre on peut l'activer, donc il fallait mettre :

Sheets('SAISIE QUANTITE').Activate
Columns('B:B').EntireColumn.Hidden = False

Si tu veux garder le 'Select' dans ton cas, tu pouvais, mais alors il fallait modifier tel que :

Sheets('SAISIE QUANTITE').Select
Columns('A:C').EntireColumn.Hidden = False

@ +++

Moa

Message édité par: Moa, à: 26/04/2005 18:38
 
bonjour Moa et merci

je viens de reprendre mon fichier en tenant compte de tes conseils .


je n'y arrive toujours pas il s'arrête toujours a activesheet. paste.

peutx-tu me le retouner, s'il te plait avec les corrections.

Quand je vous dit que ce n'est pas facile.


A+Marion
 
Re Marion !

Excuse-moi, j'ai regardé trop vite...Hoooooooo!!!

Dans ta macro, il y a bien un HIC !

Réflechissons...HAAAA...!!!

Tu demandes le lancement de ta macro au moment où tu actives ta feuille, hors dans ta macro, tu actives plusieurs fois ta feuille, donc elle recommence à chaque fois au début et part en boucle sans jamais se terminer....

A mon avis, tu ferais mieux de mettre ta macro, soit à l'ouverture du classeur, soit la lancer avec un bouton de commande.

J'y retourne et te tiens au courant rapidos !

@ +++

Moa

Message édité par: Moa, à: 26/04/2005 18:16

Message édité par: Moa, à: 26/04/2005 18:39
 
exactement c'est ça

je voudrais si possible garder ce système car la liste en feuille base est relativement longue de plus des codes sont crées tous les jours.

donc je désire que cette liste soit utilisable en feuille saisie quantité mais toujours actualise.


merci
A+Marion
 
Voilà ton fichier joint !

Et ta macro, légèrement modifiée :

Sub macrotest()
Application.ScreenUpdating = False

Sheets('SAISIE QUANTITE').Activate
Columns('B:B').Activate
Selection.EntireColumn.Hidden = False

Sheets('BASE').Activate
Range('A6:A1031').Activate
Selection.Copy

Sheets('SAISIE QUANTITE').Activate
Range('B6').Select
ActiveSheet.Paste

Range('B5:B1647').Select

Selection.Sort Key1:=Range('B6'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, Orientation:=xlTopToBottom

Columns('B:B').EntireColumn.Hidden = True
Application.ScreenUpdating = True
End Sub


@ +++

Moa [file name=marion11_20050426182438.zip size=11131]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/marion11_20050426182438.zip[/file]
 

Pièces jointes

Re Marion !

Sinon, mets ta macro à l'ouverture du classeur !

Private Sub Workbook_Open()
macrotest
End Sub

Autrement, on peut faire mieux :

Mettre le bouton de commande de ta macro sur un UserForm, qui resterait affiché quelque soit l'onglet visible, ou alors de faire une macro évènementielle par rapport au changement éventuel de ta feuille.

@ +++

Moa

Message édité par: Moa, à: 26/04/2005 18:37
 
Bonjour

Petite correction, on ouvre pas une feuille, mais on l'active ou la sélectionne. Voici deux procédure qui feron je crois ce que tu demande:

Cette procedure est situé dans le 'module' feuil2 (saisie quantite)
Cette procédure est spéciale en soit. Elle est reconnue par vba. C'est a dire que comme le nom de la procédure l'indique, elle va etre exécuté lorsque l'onglet 'saisie quantite' sera activé.

Code:
Private Sub Worksheet_Activate()
With Worksheets('saisie quantite'Â'Â')
     .Columns('B:B'Â'Â').EntireColumn.Hidden = False
     Worksheets('base'Â'Â').Range('a6:a1000'Â'Â').Copy Destination:=.Range('B5'Â'Â')
      Application.CutCopyMode = False
     .Range('B5:B' & Range('B5'Â'Â').End(xlDown).Row).Sort Key1:=Range('B5'Â'Â'), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
     .Columns('B:B'Â'Â').EntireColumn.Hidden = True
End With
Worksheets('base'Â'Â').Select
End Sub

Et cette autre procedure est situé dans le 'Module' ThisWorkbook'
Elle sert a sélectionner l'onglet 'base ' à la fermeture du fichier.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Worksheets('base'Â'Â')
     .Select
     .Cells(5, 1).Select
End With
End Sub

Philippe [file name=marion11_20050426184748.zip size=10241]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/marion11_20050426184748.zip[/file]

Message édité par: Hellboy, à: 26/04/2005 18:52
 

Pièces jointes

Bonjour le Fil, le Forum,

Regarde le ficher joint, il met à jour la feuille saisie de données quand on va dessus.
As tu regardé ma réponse sur ton autre fil ?

Bonne jounée, Hervé. [file name=Marion11 B D_20050427124818.zip size=10029]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Marion11 B D_20050427124818.zip[/file]
 

Pièces jointes

Salut 'Marion
bonjour le Fil
voilà ce que j'ai mis comme code plus de copy mais des plage source et cible
a voir
Private Sub Worksheet_Activate()
Dim source As Range
Dim Cible As Range
With Worksheets('base')
Set source = .Range('a6:a' & .Range('A65536').End(xlUp).Row)
End With
Application.ScreenUpdating = False
With Worksheets('saisie quantite')
.Columns('B:B').EntireColumn.Hidden = False
For L = 1 To source.Rows.Count

Range('B' & L + 4) = source.Item(L)
Next
.Range('B5:B' & Range('B5').End(xlDown).Row).Sort Key1:=.Range('B5'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'.Columns('B:B').EntireColumn.Hidden = True
End With
Worksheets('base').Select
Application.ScreenUpdating = True
End Sub
Amicalement
Jean Marie
Ps la ligne en rouge est juste là pour vérifier lors essais

Message édité par: ChTi160, à: 27/04/2005 14:22
 
Re
une version en passant par un tableau temporaire
Private Sub Worksheet_Activate()
Dim source As Variant
With Worksheets('base')
source = .Range('a6:a' & .Range('A65536').End(xlUp).Row).Value
End With
Application.ScreenUpdating = False
With Worksheets('saisie quantite')
'.Columns('B:B').EntireColumn.Hidden = False
.Range('B5:B' & UBound(source, 1) + 4) = source
.Range('B5:B' & Range('B5').End(xlDown).Row).Sort Key1:=.Range('B5'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Columns('B:B').EntireColumn.Hidden = True
End With
Worksheets('base').Select
Application.ScreenUpdating = True
End Sub

Jean Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

N
Réponses
0
Affichages
792
nakajima
N
M
Réponses
4
Affichages
2 K
Mbersier18
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…