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 :

Probleme ouverture fichier excel avec redimentionement fenetre [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut Probleme ouverture fichier excel avec redimentionement fenetre
    bonjour
    j'ai un probleme avec mon code
    il fonctionne bien avec l'explorer.exe de windows
    mais ne marche pas avec un fichier excel

    le probleme est que le fichier excel qui doit s'ouvrire avant la suite du code s'ouvre après l’exécution du code
    code qui ouvre le fichier excel sans le redimentionner
    mais redimentionne le fichier qui a le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      retval = MonApplication.Open(MonFichier & extension1)
        largeur = GetSystemMetrics32(0)
    hauteur = GetSystemMetrics32(1)
    If vue = True Then
     
    cal_largeur = largeur - 400
    cal_hauteur = ((hauteur / 4) * 2)
    With Application
    .WindowState = xlNormal
        .Left = 0
        .Top = hauteur / 4 - 25
        .Width = cal_largeur
        .Height = cal_hauteur
    End With
    trouvez ci joint le code complet de ma fonction pour windows 64bit il y a juste les ptrsafe a supprimer pour le 32bit

    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
    71
    Declare PtrSafe Function GetSystemMetrics32 Lib "User32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
    Declare PtrSafe Function MoveWindow Lib "User32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Public Function OuvrirFichier2(MonFichier As String, Optional ByVal extension As String)
    'par Excel-Malin.com ( https://excel-malin.com )
     
    'On Error GoTo OuvertureFichierErreur
     
       'vérifie si le fichier existe
     
       If Dir(MonFichier & extension) <> "" Then
       extension1 = extension
       vue = True
       Else
       If Dir(MonFichier & ".xls") <> "" Then
       extension1 = ".xls"
       vue = True
       Else
       If Dir(MonFichier & ".xlsm") <> "" Then
       extension1 = ".xlsm"
       vue = True
       Else
       If Dir(MonFichier & ".xlsx") <> "" Then
       extension1 = ".xlsx"
       vue = True
       Else
       If Len(Dir(MonFichier, vbDirectory)) <> "" Then
       vue = False
       Else
        OuvrirFichier2 = False
        MsgBox "pas de fichier ou dossier trouver pour " & MonFichier
        Exit Function
       End If
       End If
       End If
       End If
       End If
       'ouvre le fichier dans son application associée
       Dim MonApplication As Object
       Set MonApplication = CreateObject("Shell.Application")
     
       retval = MonApplication.Open(MonFichier & extension1)
        largeur = GetSystemMetrics32(0)
    hauteur = GetSystemMetrics32(1)
    If vue = True Then
     
    cal_largeur = largeur - 400
    cal_hauteur = ((hauteur / 4) * 2)
    With Application
    .WindowState = xlNormal
        .Left = 0
        .Top = hauteur / 4 - 25
        .Width = cal_largeur
        .Height = cal_hauteur
    End With
    Else
    T = Timer + 10
    Do While T >= Timer
    Do: DoEvents: Loop While objshell.Windows.Count = nbfenetre: 'pos = Split(mespositions(x), ",")
    MoveWindow FindWindow(vbNullString, objshell.Windows(nbfenetre).locationname), 0, 0, largeur, hauteur / 4, 1
    Loop
    End If
        OuvrirFichier2 = True
       Set MonApplication = Nothing
     
    Exit Function
    OuvertureFichierErreur:
       Set MonApplication = Nothing
        OuvrirFichier2 = False
    End Function
    merci d'avance pour votre aides

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    si je comprend bien tu ouvre 4 fichiers et tu les affiches a l'ecran h/4:w/4 c'est ca ?
    si c'est ca tu n'a absolument pas besoins des apis
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour

    j'ouvre un seul fichier mais comme nous sommes plusieurs a modifié les fichiers .
    cela permet de vérifier si le fichier n'existe pas de test les autres extension

    mais je ne comprend pas car le code fonctionne en pas a pas mais pas en automatique

    merci d'avance

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    qu'est ce que ca a voir les api window et dimentions et un eventuel test d'existence de fichier ??????????
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    d'autant plus que ouvrir le fichier avec shell.application te prive de toute les propriétés de l'object application et/ou workbook

    non vraiment je pige pas
    au pire pour faire ce que je crois que tu veux faire il faut max 5 6 ligne

    deja ton test dir, tu pourrais te contenter de mettre ".*" pour l'extention quelque se soit l'extention (xls,xlsm,xlsx,etc...)si le nom y est il le sort

    ensuite ton shell... tu vire !!,sert toi de createobject("excel.application") puis object.workbooks.open (pour ouvrir dans une instance differente du fichier de la macro

    ou directement workbooks.open fichier

    ainsi par vba tu a l'acces au height/width dela fenetre de l'intance de l'application a tout les propertie du workbook etc etc .....
    plus d'api plus rien

    je soupconne aussi une recursivité dans la recherche de fichier ,tout du moins une tentative et c'est pas ca du tout du tout

    donc si tu me dis que ca fonctionne en pas a pas ,tu a enormement de chance ou mouline pour rien
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour

    mon code permet d’ouvrir un dossier windows ou un fichier excel

    bonjour

    peut tu développez un peu plus ta proposition de code

    merci d'avance

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

Discussions similaires

  1. [AC-2013] Bug lors de l'ouverture fichier excel avec des graphiques
    Par stum32 dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/04/2017, 17h30
  2. Ouverture fichier excel avec liaison
    Par Nako_lito dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/08/2010, 06h45
  3. Ouverture d'un fichier Excel avec ADO
    Par sorlok dans le forum ASP.NET
    Réponses: 9
    Dernier message: 17/12/2008, 09h59
  4. Probleme de lecture d'un fichier excel avec VB6
    Par Ora92_IDS dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 10/04/2008, 14h17
  5. Ouverture de fichier Excel avec macros
    Par Mathusalem dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/06/2006, 11h39

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