XL 2010 Erreur d'exécution 13 suite à la modification d'un tableau par l'ajout d'une ligne de totaux

cgpa

XLDnaute Occasionnel
Bonjour,

A partir d'un double clic sur une cellule d'une ligne de la feuille WS5, j'ai un userform qui renvoie les valeurs de la ligne active ainsi que des valeurs choisies sur une feuille WS2, le tout étant renvoyé sur la dernière ligne d'un tableau présent sur la feuille WS3. Tout allait à la perfection jusqu'à ce que je modifie le tableau de destination en activant la case "ligne des totaux" dans la mise en forme. Depuis, une erreur d'exécution 13 apparaît. Je pense que la ligne des totaux ne permet plus au code de retrouver la dernière ligne de données du tableau de destination. Le code est en surbrillance jaune à l'endroit "Userform1.show". Quelqu'un sait-il comment je dois modifier le code?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim isect
Set isect = Application.Intersect(Target, Range("A2:M" & Cells(Rows.Count, 1).End(xlUp).Row))
If Not isect Is Nothing Then
Cancel = True
Ligne = Target.Row
DerLWs3 = Ws3.Cells(Rows.Count, 1).End(3)(2).Row 'Définit la dernière ligne sans valeurs de la feuille "WS3. C'est à mon avis ici qu'il y a maintenant un problème avec la ligne des totaux"
Ws2.Activate
Set Feuille = Ws5
UserForm1.Show
End If
End Sub
 

cgpa

XLDnaute Occasionnel
Bonjour,
Merci pour cette précision. J'ai bien cherché dans le code de l'userform, mais je ne vois pas où se trouve le problème. Je joins un fichier nettoyé des protections et données personnelles (j'avais plus de 7000 lignes!). Le fichier joint allégé fonctionne. C'est lorsque j'ajoute la ligne des totaux dans le tableau de la feuille 'liste de commandes' que cela ne fonctionne plus. Pour activer l'userform, il faut double-cliquer sur une société de la feuille 'Contacts fournisseurs'. L'userform apparaît et il propose de cliquer sur un chantier. Merci pour votre aide!
 

Pièces jointes

  • Liste commandes.xls
    408 KB · Affichages: 38

Paf

XLDnaute Barbatruc
re,

quant vous rajoutez la ligne des totaux dans le tableau de la feuille 'liste de commandes', qu'écrivez vous exactement et particulièrement en colonne A ?

Dans Private Sub UserForm_Initialize() de l'USF, on inscrit la valeur de la dernière ligne de la colonne A dans la textbox4, puis on inscrit en textbox1 cette valeur incrémentée de 1.
Si la dernière valeur de la colonne A est du texte ( "Total", par exemple), Total +1 => erreur 13 .

A+
 

cgpa

XLDnaute Occasionnel
re,

quant vous rajoutez la ligne des totaux dans le tableau de la feuille 'liste de commandes', qu'écrivez vous exactement et particulièrement en colonne A ?

Dans Private Sub UserForm_Initialize() de l'USF, on inscrit la valeur de la dernière ligne de la colonne A dans la textbox4, puis on inscrit en textbox1 cette valeur incrémentée de 1.
Si la dernière valeur de la colonne A est du texte ( "Total", par exemple), Total +1 => erreur 13 .

A+

Bonjour, et merci!
voilà donc où se situe le problème. Effectivement, c'est le mot "total" qui posait problème. Je viens d'essayer en vidant la dernière cellule et l'userform s'active. Cependant, comme il n'y a plus de valeur dans la dernière cellule de la colonne A, l'userform additionne le "total +1" du code en 0+1 =1. Or, l'objectif avec le code de la textbox était justement d'avoir automatiquement le dernier numéro encodé +1. Dès lors, il faudrait que je puisse dire au code qu'il faut prendre la dernière cellule du tableau en colonne A sans qu'il prenne en compte la ligne des totaux. Comment puis-je remplacer le morceau de code suivant:
Me.TextBox1.Value = Ws3.Range("A50000").End(xlUp) + 1
J'avais mis "A50000" en pensant ne jamais arriver là mais il y a sûrement un code pour déterminer la dernière cellule d'unec olonne à l'intérieur d'un tableau sans prendre la ligne des totaux.
Excellente journée,
 

Paf

XLDnaute Barbatruc
re,

Si c'est bien le texte en colonne A qui pose souci, ne pouvez vous pas décaler ce texte (Total)
Sinon où se situe exactement cette lignes total par rapport à la dernière ligne de commande

peut-être la ligne total n'a pas de valeur dans chaque cellule et on pourrait 'calculer' la dernière ligne ailleurs que sur la colonne A,

Mais plutôt que de multiplier les hypothèses, re joignez votre classeur dans l'état où il pose problème (avec la ligne des totaux).

A+
 

cgpa

XLDnaute Occasionnel
Mais plutôt que de multiplier les hypothèses, re joignez votre classeur dans l'état où il pose problème (avec la ligne des totaux).

Merci pour votre aide, Paf. Je viens de joindre le fichier avec un encadré de commentaire sur la feuille "liste commande". Pour lancer l'userform, il faut double clic sur une cellule active de la feuille "contact fournisseur".
 

Pièces jointes

  • Liste commandes.xls
    410 KB · Affichages: 37

Paf

XLDnaute Barbatruc
Re,

Commentaires issus du classeur:
Le problème avec cette ligne de totaux ajoutée dans le tableau = l'userform prend la dernière cellule de la colonne "A" et ajoute +1. Avant, cela fonctionnaire mais maintenant cela donne 0+1 =1 (dans le cas ici, il prend A9 +1)
...

le fait de rajouter la ligne de totaux ne change rien puisqu'elle commence en colonne B avec le mot "TOTAUX".
Dans le dernier classeur joint : la dernière cellule de la colonne A est bien A8 qui contient 3986. et 3986 +1= 3987 donc par de valeur 1 ni d'erreur 13.

Commentaires issus du classeur:
....
En plus, le résultat de l'userform vient s'ajouter à la suite de la ligne "totaux" alors que j'aimerais qu'il vienne s'insérer juste avant pour que la donnée soit prise en compte dans le total.

dans le premier classeur joint la liste des commandes en feuille liste commandes était sous forme de tableau (au sens Excel 2007 et +, encadrée d'un trait bleu), ce tableau a disparu du dernier classeur joint.


N'utilisant pas la même version, je ne pourrai vous être d'un plus grand secours

A+
 

cgpa

XLDnaute Occasionnel
Merci pour votre aide Paf. Je viens de retenter le coup. Voici le fichier avec le nouvel essai: l'userform considère la cellule A9 comme vide et incrémente donc 0+1 =1. ensuite, il envoie les valeur en ligne 10, soit après celle des totaux. J'aurais préféré que l'userform prenne la dernière valeur en A8 + 1 = 3987 et qu'il insère les valeurs juste avant la ligne des totaux, soit sur la ligne A9. J'ai beau essayer, je n'y parviens pas.
 

Pièces jointes

  • Liste commandes.xls
    408 KB · Affichages: 39

Paf

XLDnaute Barbatruc
re,

l'utilisation de tableau (encadré de bleu) était une bonne idée puisqu'il permet de rajouter une ligne à ce tableau indépendamment des lignes suivantes.

Mais sa gestion n'est pas identiques sous ma version 2003 et les suivantes.

Le mieux est de poster une nouvelle discussion pour insérer une nouvelle ligne dans un tableau .

Bonne suite
 

cgpa

XLDnaute Occasionnel
re,

l'utilisation de tableau (encadré de bleu) était une bonne idée puisqu'il permet de rajouter une ligne à ce tableau indépendamment des lignes suivantes.

Mais sa gestion n'est pas identiques sous ma version 2003 et les suivantes.

Le mieux est de poster une nouvelle discussion pour insérer une nouvelle ligne dans un tableau .

Bonne suite

Je vous remercie pour votre aide qui a permis de trouver l'origine du problème. Bonne journée!
 

Discussions similaires

Réponses
11
Affichages
397