Ouverture feuilles d'un classeur

  • Initiateur de la discussion courtillon
  • Date de début
C

courtillon

Guest
Bonjour à tous et toutes,

J'ai ce soir, 2 demandes d'aide.

1/Ma feuille 4 étant ma feuille 'Menu ' j'ai ce code pour que mon classeur s'ouvre automatiquement sur elle en premier:

Private Sub Workbook_Open()
Feuil4.Select
End Sub

Je voudrais rajouter aussi un code pour que toutes mes autres feuilles s'ouvrent en CELLULE A1 de facon à voir ma feuille x ou y entierement visibles dés l'ouverture.

2/Sur cet autre code je voudrais rajouter une ligne de façon aprés recopie des données que la ligne source A5:J5 s'éfface:

Sub recopie_des_données()
Dim WsSource As Worksheet
Dim WsCible As Worksheet
Dim MaLigneSource As Range
Dim MaligneCible As Range
Dim derlgn As Integer
Set WsSource = Worksheets('client')
Set WsCible = Worksheets('Gestion Client')
Set MaLigneSource = WsSource.Range('A5:J5')

With WsCible
derlgn = .Range('A3000').End(xlUp).Row + 1
Set MaligneCible = .Range(.Cells(derlgn, 1), .Cells(derlgn, 10))
MaligneCible = MaLigneSource.Value

'''''ici peut être AVEC : Sheets('Client').[A5:J5].ClearContents

End With
End sub

Merci de votre aide qui par ailleurs m'a déja bien fait avancé dans mon projet
 

ya_v_ka

XLDnaute Impliqué
Salut

pour ta première question:

Private Sub Worksheet_Activate()
Range('A1').Activate
End Sub

dans chaque feuille ou cela est souhaité me semble fonctionner

pour la seconde, désolé...

ya'v

quoique ...

worksheets('clients').Range('A5:J5').select
selection.clearcontents

mais c'est de mémoire, alors très risqué et pas garanti !!!

re ya'v

Message édité par: ya_v_ka, à: 04/10/2005 01:23
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir courtillon, ya_v_ka,

En complément de la réponse de ya_v_ka,

Pour la 1ère question :
Pour ne pas avoir à recopier la macro sur chaque module de feuille, on peut aussi copier cette procédure unique dans le module de code de l'objet ThisWorkbook :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
      'Pour toutes les feuilles sauf la feuille 'Feuil4'
      If Sh.Name <> 'Feuil4' Then Range('A1').Select
End Sub

Pour la 2ème question : (pourquoi ne pas avoir essayé comme tu l'indiques en commentaire ?)
Sub recopie_des_données()
Dim WsSource As Worksheet
Dim WsCible As Worksheet
Dim MaLigneSource As Range
Dim MaligneCible As Range
Dim derlgn As Integer
      Set WsSource = Worksheets('client')
      Set WsCible = Worksheets('Gestion Client')
      Set MaLigneSource = WsSource.Range('A5:J5')
     
      With WsCible
            derlgn = .Range('A65536').End(xlUp).Row + 1
            Set MaligneCible = .Range(.Cells(derlgn, 1), .Cells(derlgn, 10))
            MaligneCible.Value = MaLigneSource.Value
            MaLigneSource.ClearContents
      End With
End Sub
Cordialement,
 

ya_v_ka

XLDnaute Impliqué
Hello

Merci MdF, je me demandais justement pourquoi il n'y avait pas la possibilité de mettre ca en une fois... bin elle existe pffffff :angry:

Sinon je suis quand même content de ne pas prendre sur les doigts, tu vois, grace à vos conseils, ca commence à venir...

ya'v
 
C

courtillon

Guest
:) Bonjour,
Encore une fois merci à vous deux.Ce forum est unique :
Il ne faut pas attendre longtemps pour avoir une réponse.A ma question 2 ,j'avais bien essayé mais je mettais deux fois With.
Il n'y a que trois semaines que j'apprends le VB ( je suis un nouveau retraité ) ET vous êtes tous formidables ;) ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote