IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[excel 2000 - Vba] Apparence d'Excel à l'ouverture d'un fichier uniquement


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut [excel 2000 - Vba] Apparence d'Excel à l'ouverture d'un fichier uniquement
    Bonjour,

    J’aimerais savoir si il est possible en VBA, c.a.d. au lancement de mon fichier Excel, supprimer les barre de défilement de certaines feuille dans mon classeur, de cacher toutes les barres d'outil juste pour l'utilisation de mon fichier, cacher certains menu dans la barre des menus, en fait juste conserver Fichier et ?

    ...
    J'ai peut-être mal cherché mais je n'ai rien trouvé à ce sujet.


    Si quelqu'un peut m'aider?
    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  2. #2
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Voila je pense que tu chercher ça :
    pour remettre tout a la fermeture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    'désactive la vue en plein écran
    Application.DisplayFullScreen = False
     
    'réactive le menu
    Application.CommandBars(1).Enabled = True
     
    'réactive les onglets des feuilles
    ActiveWindow.DisplayWorkbookTabs = True
     
    'réactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = True
     
    'réactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
     
    'réactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = True
    Next CmdB
     
     
    End Sub
    pour l'ouverture du classeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub Workbook_Open()
     
     
    'désactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
     
    Application.DisplayFullScreen = True
     
    'désactive le menu
    Application.CommandBars(1).Enabled = False
     
    'désactive les onglets des feuilles
    ActiveWindow.DisplayWorkbookTabs = False
     
    'désactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
    Next CmdB
    'désactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = False
    'Protège la feuille
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlNoSelection
    End Sub
    Mais avant tout mettre ça dans les déclarations générales

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Declare Function FindWindowA Lib "User32" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLongA Lib "User32" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLongA Lib "User32" _
    (ByVal hwnd As Long, ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
    Voila je crois qu'il ya tout

    A+

  3. #3
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Super !!!!

    Merci Larsen21

    En tout cas, cela répond tout à fait à mon besoin.

    Je préfère afficher mon classeur en 600 X 900
    Il ne me reste plus qu'a centrer l'application.

    Si tu as une info, je suis preneur.
    Sinon, je cherche et je donnerais mon code complet pour information.

    Puis, je cliquerais sur le bouton Résolu of course.

    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  4. #4
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut Est-ce que c'est ça?
    Tu peux essayer ça si c'est pour centrer tes feuilles alors c'est ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Sub centerform(frm As Form)
    Code pour centrer la feuille
    frm.Top = Screen.Height / 2 - frm.Height / 2
    frm.Left = Screen.Width / 2 - frm.Width / 2
    End Sub
     
     
    Private Sub Form_Load()
    'Centre la feuille
    centerform Me
    End Sub
    a+

  5. #5
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bonjour à tout le monde,

    Merci Larsen21 pour l'information.

    J'ai essayé de faire la même chose pour l'application Excel mais ça ne fonctionne pas.

    En fait, j'aimerais qu' Excel s'ouvre avec une taille de 2/3 de la résolution écran horizontalement et verticalement.

    Mais comme je l'ai codé, ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Private Sub Workbook_Open()
    'désactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
    Dim strHeight As Integer
    Dim strWidth As Integer
     
     
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
     
    Application.Height = (2 * Screen.Height) / 3
     
    Application.Width = (2 * Screen.Width) / 3
    'Application.DisplayFullScreen = True
     
    ' désactive la barre de formule
    Application.DisplayFormulaBar = False
     
    'désactive le menu
    Application.CommandBars(1).Enabled = True
     
    'désactive les onglets des feuilles
    'ActiveWindow.DisplayWorkbookTabs = False
     
    'désactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
    Next CmdB
    'désactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = False
    'Protège la feuille
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlNoSelection
     
    Sheets("Memory").Cells(2, 5) = ActiveWorkbook.FullName
        frmSplash.Show
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    'désactive la vue en plein écran
    'Application.DisplayFullScreen = False
     
    'réactive le menu
    Application.CommandBars(1).Enabled = True
     
    ' réactive la barre de formule
    Application.DisplayFormulaBar = True
     
    'réactive les onglets des feuilles
    'ActiveWindow.DisplayWorkbookTabs = True
     
    'réactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = True
     
    'réactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
     
    'réactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = True
    Next CmdB
     
     
    End Sub
    Si quelqu'un a une idée?

    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  6. #6
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut c'est ça !
    En fait je croyais que c'était redimensionner une userform mais en fait tu veux redimensionner carrément la fenêtre excel donc ça serait plutot un truc dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Application.WindowState = xlNormal
        Application.Left = 136
        Application.Top = 55.75
        Application.Width = 664.5
        Application.Height = 553.5
    bien sur adapte le de la façon dont tu veux car je pense que ça devrait etre différent puisque je suis sur un écran 19pouce et une résolution de 1280x1024

    a+

  7. #7
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Yes trop cool ....

    Merci Larsen21

    Mais encore une dernière question, comme je pense que je me suis mal expliqué, je la reformule.

    Ta solution, c'est exactement ce que je cherchais mais à un poil près, comment faire automatiquement ce choix avec la résolution écran?

    En fait comme chaque PC qui utilise mon outil peu avoir une résolution différente, ta solution doit pouvoir s'adapter automatiquement.

    En fait, si je savais récupérer la résolution écran je pourrais faire cela facilement mais je ne sais pas faire.

    Alors si tu as une info

    Bien à vous.
    Paloma
    Cordialement,
    Paloma



    Pensez au

  8. #8
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Alors en fait le plus simple je pense pour avoir la résolution c'est ça :
    ça tu le met en déclaration générale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function apiGetSys Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
    puis pour avoir la résolution de l'écran tu a ça
    a étant la largeur
    b étant la longueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    'Recherche de la résolution d'écran
      a = apiGetSys(0)
      b = apiGetSys(1)
     
      MsgBox a & "x" & b
    End Sub

    après faut encore faire la liaison automatique mais j'y travaille
    je t'envoi un post si je trouve.

    a+

  9. #9
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Merci Larsen21

    Voilà j'ai fini et ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub Workbook_Open()
     
    'désactive les boutons fermer plein écran et réduire d'excel
    Dim hwnd As Long
     
    hwnd = FindWindowA(vbNullString, Application.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
     
    Dim strHeight As Integer
    Dim strWidth As Integer
     
    strHeight = apiGetSys(1)
    strWidth = apiGetSys(0)
     
    Application.Height = (strHeight * 2) / 3
     
    Application.Width = (strWidth * 2) / 3
    'Application.DisplayFullScreen = True
     
    ' désactive la barre de formule
    Application.DisplayFormulaBar = False
     
    'désactive le menu
    Application.CommandBars(1).Enabled = True
     
    'désactive les onglets des feuilles
    ActiveWindow.DisplayWorkbookTabs = False
     
    'désactive les barres d'outil
    Dim CmdB As CommandBar
    For Each CmdB In Application.CommandBars
    CmdB.Enabled = False
    Next CmdB
    'désactive l'entête des colonnes et lignes
    ActiveWindow.DisplayHeadings = False
    'Protège la feuille
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlNoSelection
     
    Sheets("Memory").Cells(2, 5) = ActiveWorkbook.FullName
        frmSplash.Show
    End Sub
    T trop fort ;-)

    Cordialement,
    Paloma
    Cordialement,
    Paloma



    Pensez au

  10. #10
    Membre du Club Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 46
    Points
    46
    Par défaut Bravo !
    Mais c'est parfait tout ça
    paloma
    Bravo a toi ! je n'ai fait que te guider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] exporter les donnée excel vers un autre classeur excel en vba
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2011, 10h58
  2. Réponses: 10
    Dernier message: 17/02/2009, 15h51
  3. [E-03]- Migration d'Excel 2000 et XP vers Excel 2003
    Par sagara95 dans le forum Excel
    Réponses: 4
    Dernier message: 09/01/2009, 14h31
  4. [VBA-E]Feuille excel et VBA
    Par seb13 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/03/2007, 20h51
  5. [VBA-E] Probleme avec l'ouverture d'un fichier Excel
    Par mennix dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/12/2006, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo