Microsoft 365 Débogage dans ma macro

luke3300

XLDnaute Impliqué
Bonjour le forum,

J'utilise ce code pour mettre en forme une feuille mais lorsque je l'active, j'obtiens un débogage à ce niveau:

2020-06-09_11-57-26.png


Mon code complet est celui-ci:

VB:
Sub Defusion_Col()

    If MsgBox("Vous vous apprêtez à modifier la configuration du classeur, êtes-vous sûr de vouloir continuer?", vbYesNo, "Demande de confirmation") = vbYes Then
        Selection.UnMerge
    With Range("C:C,K:K,N:N,P:P").Delete
    'End With
    Range("K:K;L:L").EntireColumn.AutoFit
    End With
    MsgBox "La configuration du classeur a été modifiée ! Merci pour votre patience."
    End If
End Sub

Quelqu'un aurait une idée de ce qui fait planter la macro?

Merci à tous et belle journée
 

luke3300

XLDnaute Impliqué
Bonjour à tous,

Je reviens vers vous car j'utilise ce code en macro complémentaire mais elle ralenti fortement le démarrage d'Excel et donc je me demandais s'il n'y avait pas lieu de l'optimiser parce que peut-être le code n'est pas optimal ... qu'en pensez-vous?

VB:
Sub Defusion_Col()
Application.ScreenUpdating = False

    If MsgBox("Vous vous apprêtez à modifier la configuration du classeur, êtes-vous sûr de vouloir continuer?", vbYesNo, "Demande de confirmation") = vbYes Then
        Selection.UnMerge
    With Range("C:C,E:E,K:K,N:N,P:P").Delete
         Range("B:B,I:I,K:L,P:P").ColumnWidth = 31 '.EntireColumn.AutoFit  'Va ajuster la colonne selon la plus longue valeur
         Range("H:K").ColumnWidth = 6
         Range("1:6").Delete
         Range("1:1").RowHeight = 42
         Range("J:J").Select
        Application.CutCopyMode = False
        Selection.Cut
        Range("G:G").Select
        Selection.Insert Shift:=xlToRight
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.RowHeight = 18
Range("A2:O20000").Select
Selection.Copy
    End With
    MsgBox "Opération terminée ! Merci pour votre patience."
    End If
End Sub

Merci d'avance pour toute l'aide que vous pourrez m'apporter.
Belle soirée à tous.
 

luke3300

XLDnaute Impliqué
Bonsoir Dranreb, le forum,
Je ne comprends pas, la macro fonctionne bien, le seul hic c'est lorsque je lance Excel ... il est lent à charger. La macro complémentaire y est certainement pour quelque chose parce que sans elle, Excel démarre très bien. Et on voit dans la fenêtre de lancement d'Excel qu'il reste calé plusieurs secondes sur le démarrage de la macro complémentaire. Je me demandais donc si justement le code bidouillé n'était pas un peu ... désordonné ou avec des codes inadaptés. Merci pour votre aide.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @luke3300 @Dranreb @patricktoulon , le Forum

Cette histoire de "With" me laisse perplexe, l'Editeur VBA (VBE) est vraiment trop "cool" avec le "n'importenawak" ! La compile ne devrait jamais passer avec cette ligne.

Du coup, oui je m'imagine que ce "sbinz de code" en plus en Add-In à l'ouverture devait faire "mouliner" Excel pour rien.... Tu as eu même de la chance qu'il ne plante pas l'ouverture d'Excel complètement.

La contruction d'un Add-In (macro-complémentaire XLA ou XLAM) doit toujours se faire d'abord avec un simple XLSM qui aura été testé et re-testé, vérifié et re-vérifié.
Sinon on met n'importe quoi dans le démarrage d'Excel au risque d'avoir des effets hautement indésirables !

Bonne journée
@+Thierry
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Quelques essais éclaircissent partiellement ça :
VB:
Option Explicit

Sub Test1()
   Dim V As Variant
   V = Rows(3).Delete
   MsgBox TypeName(V) & " " & V
   End Sub
Sub Test2()
   Dim B As Boolean
   With B
      .Quoi
      End With
   End Sub
Sub Test3()
   With Rows(3).Delete
      .Quoi
      End With
   End Sub
Mon hypothèse est que, quitte à renvoyer quelque chose, au lieu de renvoyer réellement un Boolean, la méthode Delete de l'objet Range le renvoie dans un Variant, lequel serait susceptible de contenir un objet, de sorte que le compilateur ne peut détecter aucune anomalie.
 
Dernière édition:

Statistiques des forums

Discussions
312 196
Messages
2 086 092
Membres
103 116
dernier inscrit
kutobi87