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
et ben voilà on y arrive
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...
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
Merci pour ces précisions, mais du coup comment je peut réglé le problème. Car j'ai essayer de renommer la feuille, de renommé le tableau mais je ne trouve pas
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
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 ?????????????
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é
et ben voilà on y arrive
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
et ben voilà on y arrive
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