Excel ferme tout seul quand un tableau est modifié

Bonjour à tous!

J'ai un énorme problème sur un nouveau classeur dont je suis en train de travailler dessus. J'applique une Macro pour ajouter de l'information dans un tableau sous la ligne de celui-ci et automatiquement Excel inclus la nouvelle donné dans le tableau. J'ai cette Macro dans beaucoup d'autres de mes classeurs et il fonctionne tous très bien, le code vient d'un d'entre eux que j'ai adapter bien entendu.

Le problème est que pour une raison que j'ignore quand j'applique la Macro pour ajouter l'information, Excel plante et ferme en catastrophe... Je n'arrive pas à savoir ce qui ce passe. J'ai testé mes autres classeurs et ils fonctionnent toujours très bien. J'ai tenté également de recommencer entièrement à zéro et ça ne fonctionne pas non plus. Il faut aussi savoir que quand j'agrandi manuellement le tableau il se passe la même chose, Excel plante et ferme en catastrophe.

Je vous joint le fichier et vous explique la procédure :

1. Ouvrir le UserForm "Connexion" à partir de la première feuille ("GESTIONNAIRE DU PROJET");

2. Clique au bas du formulaire sur "Créer ou modifier un utilisateur;

3. Dans le UserForm "Utilisateur" dans la fiche "Nouvel utilisateur", entrer les informations que vous désirez pour le test et cliquer sur le CommandButton "Créer";

Le "bug" arrive là.

29test.xlsm (295.40 Ko)

Bonjour,

Attention, la récupération des jours et mois se fait au travers d'une combobox et non du textbox(le fait de les avoir nommés "TextBox" prête à confusion)

la ligne en défaut corrigée:

        For I = 3 To 4: DTUT.Cells(Nouv, I) = Val(Controls("UF2_TextBox" & I).ListIndex): Next I

Cdlt

Bonjour Arturo83!

Merci pour ton aide en premier lieu.

En fait mon "bug" n'est pas dans la retranscription des valeurs de mes TextBox ou ComboBox vers les cellules d'une feuille, mais quand je les retranscrit dans un tableau qui s'ajuste automatiquement. Quand j'exécute mon code à l'extérieur d'un tableau il marche à la perfection. Quand j'ajoutes des donnés la ligne sous le tableau et que celui-ci automatiquement s'agrandi d'une ligne venant englober la nouvelle transcription, il "bug".

Même quand j'agrandi manuellement le tableau ce qui veut dire que je vais sur la feuille, je prend ma souris et j'agrandis manuel le tableau par le coin il "bug" également.

Ce code je l'ai sur d'autres fichier et il fonctionne à merveille. J'ai tenté de réparer, réinitialiser M365, j'ai recommencé à zéro un classeur (alors même qu'à la base c'était déjà un classeur vierge), j'ai aussi tenter de transposer sans copié/colle sur des fichiers que ça fonctionne déjà et ça fait toujours la même chose... Je suis un peu découragé haha.

Bonjour,

Je vois un problème ici,

cedl

il est impossible de redimensionner le tableau structuré (option grisée), donc enregistrement impossible sur une nouvelle ligne.

Si vous constatez que le problème se situe bien là, et que vous n'arrivez pas à résoudre ce problème, convertissez votre tableau structuré en plage et modifiez le code en conséquence.

Cdlt

Rebonjour!

J'ai finalement trouvé une solution qui détourne un peu le processus d'ajouter une ligne sans que le fichier se ferme en catastrophe. Ça marche pour l'ajout de un utilisateur, de deux utilisateur, mais au 3e il ajoute quand même une ligne au tableau, mais il vient écraser les informations d'un autre... C'est à ni rien comprendre et j'ai essayé un paquet de solution. Voici le code ressemble à quoi maintenant :

Private Sub UF2_CommandButton1_Click()

On Error Resume Next
If UF2_TextBox1 = "" Or UF2_TextBox2 = "" Or UF2_TextBox3 = "" Or UF2_TextBox4 = "" Or UF2_TextBox5 = "" Or UF2_TextBox6 = "" Then MsgBox "Vous devez compléter au minimum les cases en bleues.", vbExclamation, "Message": Exit Sub

Dim DTUT
Dim I
Dim Nouv
Dim Choix As Integer

Set DTUT = Sheets("DATA_UT")
Nouv = DTUT.Range("TB_utilisateur[[#Totals],[Prénom]]").End(xlDown).Row + 1

Choix = MsgBox("Voulez-vous créer le nouvel utilisateur?" & vbCrLf _
& vbCrLf _
& "Prénom : " & UF2_TextBox1 & vbCrLf _
& vbCrLf _
& "Nom de famille : " & UF2_TextBox2 & vbCrLf _
& vbCrLf _
& "Date d'embauche : " & UF2_TextBox3 & "-" & UF2_TextBox4 & vbCrLf _
& vbCrLf _
& "Utilisateur : " & UF2_TextBox5 & vbCrLf _
& vbCrLf _
& "Mots de passe : " & UF2_TextBox6, vbYesNoCancel, "Nouvel utilisateur")

    If Choix = vbYes Then
        DTUT.Range("TB_Utilisateur[[#Totals],[Prénom]]").ListObject.ListRows.Add (2)

        For I = 1 To 2: DTUT.Cells(Nouv, I) = Controls("UF2_TextBox" & I): Next I
        For I = 3 To 4: DTUT.Cells(Nouv, I) = Val(Controls("UF2_TextBox" & I).ListIndex): Next I
        For I = 5 To 6: DTUT.Cells(Nouv, I) = Controls("UF2_TextBox" & I): Next I
        For I = 1 To 9: DTUT.Cells(Nouv, I + 6) = Controls("UF2_CheckBox" & I).Value: Next I

        For I = 1 To 6: Controls("UF2_TextBox" & I) = "": Next I
        For I = 1 To 9: Controls("UF2_CheckBox" & I).Value = False: Next I

        With DTUT.ListObjects("TB_Utilisateur").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With

        UF2_TextBox1.SetFocus

        UserForm_Initialize

    ElseIf Choix = vbNo Then
        For I = 1 To 6: Controls("UF2_TextBox" & I) = "": Next I
        For I = 1 To 9: Controls("UF2_CheckBox" & I).Value = False: Next I

        UF2_TextBox1.SetFocus

    Else
        UF2_TextBox1.SetFocus

    End If

End Sub

Comme vous pourrez le constater avant de retranscrire les informations du UserForm, je viens créer une nouvelle ligne au tableau et ensuite j'entre l'info. Ça eu pour effet de ne plus créer de "bug". Le problème est que depuis, je suis en mesure d'entrer un, deux utilisateur et ensuite il commence à écraser par-dessus ceux déjà existant.

Je vous joint également le fichier à jour avec les dernières modifications.

Je viens de trouver le problème, il était dans cette ligne :

DTUT.Range("TB_Utilisateur[[#Totals],[Prénom]]").ListObject.ListRows.Add (2)

Je ne devais pas mettre à la fin "(2)" et tout simplement ne rien mettre.

Merci Arturo83 pour ton aide!

Rechercher des sujets similaires à "ferme tout seul quand tableau modifie"