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

Microsoft 365 Demande d'Assistance Technique pour Bouton de Réinitialisation sur tableau Excel

patrick965

XLDnaute Impliqué
Bonjour,

J'ai un bouton de réinitialisation sur mon classeur Excel conçu pour vider les données entrées dans le tableau tout en conservant toutes ses fonctionnalités. Malheureusement, ce bouton ne fonctionne pas, et je ne parviens pas à identifier la cause du problème. Pourriez-vous m'aider à résoudre cette question ?

Merci d'avance pour votre support.

Cordialement,
 

Pièces jointes

  • Copie de TABLEAU CALCULATEUR DÉPENSE 919 Rte 116 Acton vale mise a jour 2024-02-29.xlsm
    138.4 KB · Affichages: 3
  • Capture d’écran (105).png
    399.9 KB · Affichages: 3

Gégé-45550

XLDnaute Accro
Bonsoir (bonjour ?)
VB:
Public Sub initialisation()
' Sauvegarde et initialisation tableau
Dim col As Integer
Dim del As Long
Dim der As Long
Dim top As Long
Dim nom As String
Dim rep As String

    nom = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\")) & "sav_" & ThisWorkbook.Name
    If MsgBox("Voulez-vous sauvegarder ce document ?", vbYesNo, "Confirmation sauvegarde") = vbYes Then
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Choisissez le répertoire de sauvegarde"
            .InitialFileName = nom
            If .Show = -1 Then
                rep = .SelectedItems(1)
                nom = InputBox("Saisissez votre nom de sauvegarde", " NOM DE SAUVEGARDE", Mid(nom, InStrRev(ThisWorkbook.FullName, "\") + 1))
                ThisWorkbook.SaveCopyAs rep & "\" & nom
                MsgBox "Classeur sauvegardé"
            Else
                MsgBox "Classeur non sauvegardé"
                End
            End If
        End With
    End If
    If MsgBox("Voulez-vous initialiser ce document ?", vbYesNo, "Confirmation initialisation") = vbYes Then
        Set ws = ThisWorkbook.Worksheets("Facture")
        ws.Activate
        With ws.ListObjects("FactureSimple")
            top = .HeaderRowRange.Row
            der = .ListRows.Count
            For col = 1 To .ListColumns.Count
                If Left(.DataBodyRange.Item(1, col).Formula, 1) <> "=" Then
                    .DataBodyRange.Item(1, col).Value = ""
                End If
            Next col
        End With
        For del = ws.Cells(Rows.Count, "Q").End(xlUp).Row To top + der + 2 Step -1
            If Left(ws.Cells(del, "Q").Formula, 1) <> "=" Then
                ws.Cells(del, "N").Resize(1, 4).Value = ""
            End If
        Next del
        ws.Range("C2").Value = ""
        ws.Range("C3").Value = ""
        '----------------   modifications ici
        With ws.ListObjects("FactureSimple")
            .DataBodyRange.Delete
        End With
        ' ----------------  fin des modifications
    End If
    ActiveWindow.ScrollRow = 1

End Sub
Cordialement,
 

patrick965

XLDnaute Impliqué
en effet je nes pas été connecter depuis un bon moment j'avais énormément de bouleau dsl
 

patrick965

XLDnaute Impliqué
Bonsoir Gégé-45550, TooFatBoy et la communauté,

J'ai trois questions concernant l'utilisation de notre tableau :

  1. Problème de couleur de fond : Lorsque je réinitialise le tableau et que j'entre une nouvelle ligne de données, le fond devrait normalement rester blanc. Cependant, actuellement, il apparaît en bleu-vert, similaire à celui de l'entête. Pouvez-vous m'aider à résoudre ce problème ?
  2. Gestion des paiements reçus : Dans les cellules N, O, P, et Q (de la ligne 16 à 25), ces cases sont utilisées pour entrer les paiements reçus. N, O et P servent à décrire le mode de paiement et la date, tandis que Q est utilisé pour le montant reçu. J'aimerais implémenter un système semblable à celui utilisé lors de l'ajout d'une ligne de données. Y a-t-il moyen d'ajouter une fonctionnalité où l'on peut cliquer sur un bouton pour entrer un paiement et qu'une ligne apparaisse sous le total, afin de rendre l'ensemble plus esthétique ?
  3. Réinitialisation de la section paiements : Cette partie devra également pouvoir être réinitialisée au besoin.
J'espère avoir bien expliqué mes demandes et vous remercie d'avance pour votre aide.

Merci beaucoup,
 

Pièces jointes

  • TABLEAU CALCULATEUR DÉPENSE vierge mise a jour 2024-02-29 (1).xlsm
    136.8 KB · Affichages: 1

TooFatBoy

XLDnaute Barbatruc
oui ces celui la mais il fonctionnais pas
Une macro, pour vider un TS, qui ne fonctionne pas ?!?
Je sais que je ne suis pas très doué avec Excel, mais quand même, ça m'étonne. D'autant que chez moi ça fonctionnait.

Toutefois, comme je te l'ai déjà signalé (3 fois, je crois), mais tu ne m'as jamais répondu à ce sujet me semble-t-il : ton TS ne fonctionne pas correctement et il faudrait donc refaire complètement la feuille à mon avis.
À moins que le fonctionnement de ton TS ne pose problème que chez moi.



en effet je nes pas été connecter depuis un bon moment j'avais énormément de bouleau dsl
Pourtant après chacune de mes relances il y a eu une nouvelle connexion de ta part. Donc logiquement tu as dû voir lesdites relances.
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
J'espère avoir bien expliqué mes demandes et vous remercie d'avance pour votre aide.
Oui, tout est plutôt bien expliqué.



Dans tes demandes précédentes, il y avait alternance de deux couleurs, mais quand tu ajoutais une nouvelle ligne les couleurs n'étaient pas bonnes dans certaines colonnes.
Je t'avais corrigé cela, me semble-t-il.

Tu ne veux donc plus d'alternance de couleurs de lignes, mais tout en blanc maintenant ?



Oui, il y a peut-être un moyen : utiliser un autre Tableau Structuré.
Mais si je me souviens bien, cela posait un problème à cause de la largeur des colonnes du tableau du dessus.
Donc j'avoue qu'à part créer une macro, associée à un bouton comme tu le dis, je ne vois pas bien comment gérer ça.



Réinitialisation de la section paiements : Cette partie devra également pouvoir être réinitialisée au besoin.
Ça devra être pris en charge par une nouvelle macro associée à un autre bouton.
 

TooFatBoy

XLDnaute Barbatruc
Pour rappel, j'avais remplacé
VB:
        Set ws = ThisWorkbook.Worksheets("Facture")
        ws.Activate
        With ws.ListObjects("FactureSimple")
            top = .HeaderRowRange.Row
            der = .ListRows.Count
            For col = 1 To .ListColumns.Count
                If Left(.DataBodyRange.Item(1, col).Formula, 1) <> "=" Then
                    .DataBodyRange.Item(1, col).Value = ""
                End If
            Next col
        End With
et
VB:
        ws.Range("C2").Value = ""
        ws.Range("C3").Value = ""
        ws.Rows(top + 2).Resize(der - 1).Delete

par
VB:
    Sheets("Facture").Range("C2:C3").ClearContents
    With Range("FactureSimple")
        If Not .ListObject.DataBodyRange Is Nothing Then .Delete
    End With

C'est ce code qui ne fonctionne pas ?
 

Discussions similaires

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