XL 2013 Erreur 400 / erreur 1004

Cyril-neo

XLDnaute Nouveau
Bonjour à tous,

Comme le titre l'indique je suis victime de l'erreur 400 et de l'erreur 1004 (quand ce n'est pas la 400 bien sûr).
j'ai une macro qui me sert a ajouter une ligne et une autre à en supprimer une, dans un tableau spécifique, ces 2 macros fonctionnés bien jusqu'il y a 2 jours depuis j'essaie de résoudre l'erreur mais rien n'y fait et surtout je ne comprend pas ce qui l'as provoquer.
le nom des macro sont :
- Ajout_tableau1
- suppressionlignetableau1

j'ai d'autre macro identique a ces deux la pour le tableau 4 mais celles ci fonctionne parfaitement.

Je pense que cela est du au faite qu'il ne trouve pas ou plus le tableau 1 mais je n'arrive pas à le résoudre.

Mon classeur contient bcp de macro diverse et ne sont sûrement pas très bien codé (ce sont mes début).

si l'un d'autre vous aurais quelques minute à m'accorder je lui en serait très reconnaissant
 

Pièces jointes

  • Calcul RJH perte+rosé macro.xlsm
    136 KB · Affichages: 5
Solution
et ben voilà on y arrive :rolleyes:
veuillez a être plus précis dans vos demande on perdra moins de temps la prochaine fois
voilà tu a les deux ajout et supprimer (tableaux (1 et 4)

vire moi ton code de la feuil2 et met lui celui là a la place
bon les boutons je ne sais pas a quoi ils servent je les ai laissé
VB:
Private Sub CommandButton19_Click()
supr_ligne
End Sub
Private Sub CommandButton18_Click()
Ajout_ligne
End Sub
'***************************************************
'tableau4
Sub Ajout_ligne_tab4()
 Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau4")
        Newaddress = .Resize(.Rows.Count + 2).Offset(-1).Address
        Set cel = .Cells(.Rows.Count + 1, 1)
        cel.EntireRow.Insert Shift:=xlDown...
C

Compte Supprimé 979

Guest
Bonjour Cyril-neo

Beau boulot ;) 👍

Sinon c'est totalement normal :rolleyes:
Vous avez des tableaux structurés qui se suivent... si vous le faites manuellement voici ce que vous avez
1639035497393.png


A+
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour à tout les deux

Allons donc les carottes sont cuites si on ne peut pas modifier(ajouter une ligne )dans un tableau quand deux se superposent
et ben si !!!
VB:
Sub Ajout_tableau1()
  Dim NewAdress$,cel as range  
With Range("tableau1")
        Newaddress = .Resize(.Rows.Count + 2).Offset(-1).Address'on resize l'adress du tableau avec une ligne en plus 
        Set cel = .Cells(.Rows.Count + 1, 1)' on determine la cellule qui est en dessous du tableau 
        cel.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'on insert une ligne entiere au dessus de cette ligne 
        .ListObject.Resize Range(Newaddress)'et on resize le listobject avec l'address que l'on a déterminé avec la ligne en plus 
'terminé 
    End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
avec ma méthode seul le nom du tableau est nécessaire pas besoins de connaitre le nom de la feuille parent
tout simplement par ce que les names sont uniques ,il ne peut avoir deux ranges du même nom
;)
ps j'ai testé sur ton fichier avant donc la méthode est bonne
tu a juste a remplacer ta sub ajout par la mienne
 

patricktoulon

XLDnaute Barbatruc
re
il faudrait d'abords m'expliquer ta logique là
par ce que c'est confus tout ça

c'est quoi ça
VB:
Sub SuppressionLigneTableau1()

Worksheets("Perte de charge").Unprotect "Cerap21"

Range("tableau1").ListObject.ListRows(Range("tableau4").Rows.Count).delete
    
Worksheets("Perte de charge").Protect "Cerap21"

End Sub
tu peux m'expliquer le rapport entre le tableau 4 et tableau1 en terme de ligne ?????????????
 

Cyril-neo

XLDnaute Nouveau
re
il faudrait d'abords m'expliquer ta logique là
par ce que c'est confus tout ça

c'est quoi ça
VB:
Sub SuppressionLigneTableau1()

Worksheets("Perte de charge").Unprotect "Cerap21"

Range("tableau1").ListObject.ListRows(Range("tableau4").Rows.Count).delete
   
Worksheets("Perte de charge").Protect "Cerap21"

End Sub
tu peux m'expliquer le rapport entre le tableau 4 et tableau1 en terme de ligne ?????????????
Erreur de frappe ma part pour quand j'ai retaper le code (car je les avait effacer et je l'ai ai retaper avant de vous envoyer le fichier) il vas de soit que que c'est bien le tableau 1 qui est désigné
 

patricktoulon

XLDnaute Barbatruc
et ben voilà on y arrive :rolleyes:
veuillez a être plus précis dans vos demande on perdra moins de temps la prochaine fois
voilà tu a les deux ajout et supprimer (tableaux (1 et 4)

vire moi ton code de la feuil2 et met lui celui là a la place
bon les boutons je ne sais pas a quoi ils servent je les ai laissé
VB:
Private Sub CommandButton19_Click()
supr_ligne
End Sub
Private Sub CommandButton18_Click()
Ajout_ligne
End Sub
'***************************************************
'tableau4
Sub Ajout_ligne_tab4()
 Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau4")
        Newaddress = .Resize(.Rows.Count + 2).Offset(-1).Address
        Set cel = .Cells(.Rows.Count + 1, 1)
        cel.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .ListObject.Resize Range(Newaddress)
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
End Sub

Sub SuppressionLigneTableau4()
Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau4")
        .ListObject.ListRows(.ListObject.ListRows.Count).Range.EntireRow.delete
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
 End Sub
'************************************
'tableau1
Sub Ajout_tableau1()
    Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau1")
        Newaddress = .Resize(.Rows.Count + 2).Offset(-1).Address
        Set cel = .Cells(.Rows.Count + 1, 1)
        cel.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .ListObject.Resize Range(Newaddress)
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
End Sub
Sub supprimeDerligne_tableau1()
    Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau1")
        .ListObject.ListRows(.ListObject.ListRows.Count).Range.EntireRow.delete
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
End Sub
tu peux appliquer la même méthode a tes 3 tableaux
 

Cyril-neo

XLDnaute Nouveau
et ben voilà on y arrive :rolleyes:
veuillez a être plus précis dans vos demande on perdra moins de temps la prochaine fois
voilà tu a les deux ajout et supprimer (tableaux (1 et 4)

vire moi ton code de la feuil2 et met lui celui là a la place
bon les boutons je ne sais pas a quoi ils servent je les ai laissé
VB:
Private Sub CommandButton19_Click()
supr_ligne
End Sub
Private Sub CommandButton18_Click()
Ajout_ligne
End Sub
'***************************************************
'tableau4
Sub Ajout_ligne_tab4()
 Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau4")
        Newaddress = .Resize(.Rows.Count + 2).Offset(-1).Address
        Set cel = .Cells(.Rows.Count + 1, 1)
        cel.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .ListObject.Resize Range(Newaddress)
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
End Sub

Sub SuppressionLigneTableau4()
Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau4")
        .ListObject.ListRows(.ListObject.ListRows.Count).Range.EntireRow.delete
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
 End Sub
'************************************
'tableau1
Sub Ajout_tableau1()
    Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau1")
        Newaddress = .Resize(.Rows.Count + 2).Offset(-1).Address
        Set cel = .Cells(.Rows.Count + 1, 1)
        cel.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .ListObject.Resize Range(Newaddress)
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
End Sub
Sub supprimeDerligne_tableau1()
    Worksheets("Perte de charge").Unprotect "Cerap21"
    With Range("tableau1")
        .ListObject.ListRows(.ListObject.ListRows.Count).Range.EntireRow.delete
    End With
    Worksheets("Perte de charge").Protect "Cerap21"
End Sub
tu peux appliquer la même méthode a tes 3 tableaux
Merci beaucoup @patricktoulon, je veillerais a être plus explicite sur mes demandes à l'avenir.
 

Discussions similaires

Réponses
5
Affichages
618