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 :

VBA une macro ne fonctionne pas avec Excel 64 bits


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 200
    Points : 14 346
    Points
    14 346
    Par défaut VBA une macro ne fonctionne pas avec Excel 64 bits
    Bonjour,

    Le but de la macro est d'insérer une ligne vierge toutes les dix lignes en partant du bas des données, et cela pour les 41 feuilles du classeur. Je n'ai pas de problème avec Excel 32 bits mais mon utilisateur est obligé d'interrompre la macro au bout de dix minutes, l'insertion de lignes ne se faisant plus. Voici 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
    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
    Sub LignesVides()
      Dim Fich As String, Wbk As Workbook, Arr As Variant, Sh As Worksheet
      Dim Ctr As Long
      Application.EnableCancelKey = xlInterrupt
      deb = Timer
      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual
      Fich = Application.GetOpenFilename("Classeurs (*.xlsx), *.xlsx")
      If Fich <> "Faux" Then
        Set Wbk = Workbooks.Open(Fich)
      Else
        GoTo Fin
      End If
      Arr = Array("1sf", "1sn", "1so", "2sf", "2sn", "2so", "3sf", "3sn", "3so", _
        "4sf", "4sn", "4so", "5sf", "5sn", "5so")
      For Each Item In Arr
        Sheets(Item).Visible = xlSheetVisible
      Next Item
      For Each Sh In Sheets
        With Sh
          DoEvents
          Debug.Print Sh.Name
          deb = Timer
     
    '      Debug.Print GetMemUsage
          Ctr = 0
          For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1
            If .Cells(i, 1).Value = "" Then .Rows(i).Delete
          Next i
          For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1
              Ctr = Ctr + 1
              If Ctr = 10 Then
                Ctr = 0
                .Rows(i).Insert
                DoEvents
              End If
          Next i
        End With
        Debug.Print Timer - deb
      Next Sh
    Fin:
      Arr = Array("1sf", "1sn", "1so", "2sf", "2sn", "2so", "3sf", "3sn", "3so", _
        "4sf", "4sn", "4so", "5sf", "5sn", "5so")
      For Each Item In Arr
        Sheets(Item).Visible = xlHidden
      Next Item
      Wbk.Close True
      Application.ScreenUpdating = True
      Application.Calculation = xlCalculationAutomatic
      MsgBox Timer - deb
      MsgBox "Traitement terminé"
    End Sub
    Merci d'avance.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Daniel,
    En fait la librairie visual basic for application est une librairie par défaut.

    Elle est donc chargé systématiquement. Mais pour le coup elle ce trouve 2 fois dans ton projet 1 en x86 et une en 64!

    Tu as un problème de conflit.

    Utilises une déclinaisons de thisworvook pour tout ce qui es vba.
    thisworkbook.application

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 200
    Points : 14 346
    Points
    14 346
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir compris. Je remplace chaque "Application" par "ThisWorkbook.Application" ? Je vais demander à mon utilisateur de tester. Il va falloir attendre qu'il se réveille (il est à GMT+12).

    Je te tiens au courant.

    Merci.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 200
    Points : 14 346
    Points
    14 346
    Par défaut
    Bonjour,

    Après test, il n'y a pas d'amélioration. Est-ce que je t'ai bien compris ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

Discussions similaires

  1. [LibreOffice][Tableur] macro ne fonctionne pas avec versions récentes de Libre Office
    Par tikanak dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 08/04/2014, 15h19
  2. Macro de tableau croisé dynamique ne fonctionne pas avec excel 2007
    Par Sherman750 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/10/2012, 23h42
  3. [XL-2007] une formule dans une macro ne fonctionne pas je ne sais pas quel est le problème
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2010, 13h59
  4. XL-Macro ne fonctionne pas avec version small business edition
    Par emorex6 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 14/01/2008, 15h08
  5. Réponses: 5
    Dernier message: 03/10/2006, 19h25

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