Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Bug sur une macro

jaclam

XLDnaute Nouveau
Bonjour le forum

Il y a quelque temps après de longs échanges (Voir la discussion ici) j'ai été aidé très efficacement pour la création d'un TS assorti d'une macro pour la remise en forme du tableau en cas de problème.
Tous cela très efficace jusqu'à avant hier
J'ai utilisé ce tableau jusque là et subitement, après saisie dans une nouvelle ligne, la colonne 1 était sensée me proposer une liste de choix. Ce n'était plus le cas.
J'ai lancé la macro, pensant corriger le problème, mais j'ai eu une fenêtre erreur avec le message "400" - j'ai testé la macro en pas à pas et après avoir passé la ligne relative à la colonne 1, le message était "erreur 1400".
A cette étape, la macro avait restitué les valeurs mais pas les formules. J'ai donc fermé mon fichier sans l'enregistrer.
Ai-je été clair ?
En tout cas cela dépasse mes compétences.
Merci à tous et bon WE
Fichier en annexe.
 

Pièces jointes

  • 00-Suivi.xlsm
    41.8 KB · Affichages: 8

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jaclam,
La variable "Symbole" n'existe plus, elle semble avoir été remplacé par "_02Symboles"
Je l'ai remplacé dans la ligne avec :
VB:
.Columns(1).Validation.Add xlValidateList, Formula1:="=INDIRECT(""_02Symboles"")"
et l'erreur disparait.
Pouvez vous vérifier que c'est ok, je ne suis pas allé plus loin dans les tests. Mais au moins on n'a plus cette Erreur 400.
 

Pièces jointes

  • 00-Suivi.xlsm
    39 KB · Affichages: 3

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Il y a quelque temps après de longs échanges (Voir la discussion ici) j'ai été aidé très efficacement pour la création d'un TS assorti d'une macro pour la remise en forme du tableau en cas de problème.
Je ne sais pas si tu as bien compris que cette macro ne te sert à rien : elle n'était là que pour réparer ton TS que tu avais mal construit au départ. Une simple réparation manuelle suffisait.

Tu n'as plus aucune raison d'utiliser cette macro. Mais si tu tiens absolument à la conserver voire à l'utiliser, je te propose moi aussi une version (basée sur le code originel de Job75).

VB:
Sub SupprRecreeTS()
'
Dim P As Range, tablo
Dim NomTS As String

    Application.ScreenUpdating = False

    With Sheets("Suivi compte")
        NomTS = .ListObjects(1).Name    ' On sauvegarde le nom du TS
        Set P = .ListObjects(1).Range   ' Tableau structuré
        tablo = P                       ' Mémorise les valeurs
        P.Cells.Clear                   ' On efface toutes les cellules du TS
        P = tablo                       ' Restitue les valeurs
        With .ListObjects.Add(xlSrcRange, P, , xlYes)   ' Recrée le tableau structuré
            .Name = NomTS               ' On restaure le nom du TS
            .TableStyle = "TableStyleMedium8"
            If Not .DataBodyRange Is Nothing Then
                With .DataBodyRange
                    .Columns(1).Validation.Add xlValidateList, Formula1:="=INDIRECT(""_02.Symboles"")"
                    .Columns(2).NumberFormat = "0.00"
                     Union(.Columns(5), .Columns(6)).NumberFormat = "#,##0.00000"
                    .Columns(7).Validation.Add xlValidateList, Formula1:="A,V"
                    .Columns(10).FormulaR1C1 = "=IF([@[P/L]]="""","""",SUM([@[P/L]],OFFSET([@Marge],-1,1)))"
                    .Columns(9).NumberFormat = "#,##00.00"
                    Union(.Columns(8), .Columns(10)).NumberFormat = "#,##0.00;[Red]-#,##0.00"
                End With
            End If
            .Range.Columns(7).HorizontalAlignment = xlCenter
        End With
        P.Columns.AutoFit           ' Ajuste les largeurs des colonnes du TS
        With .UsedRange: End With   ' Actualise les barres de défilement
    End With

End Sub
 

Pièces jointes

  • 00-Suivi.xlsm
    44 KB · Affichages: 2

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…