[VBA] erreur tableau filtré
- Messages
- 260
- Excel
- Microsoft 365
- Inscrit
- 27/10/2022
- Emploi
- Expert technique réseau
Hello
qui serait en mesure de m'orienter dans ma recherche de solutions
VBA erreur 1404 désolé nous ne pouvons pas déplacer les cellules ou une plage dans un tableau filtré
Mon code copie des données dans des tableaux nommés se trouvant sur plusieurs feuilles différentes. Mais pour l'un de ces tableaux et un seul uniquement je suis devant cette erreur.
J'ai désactivé l'ensemble des filtres présents sur ce tableau... en vain
Bonsoir,
la copie des données se fait comment sur les tableaux ? Exemple, si vous mettez un objet "oublié" sur la dernière ligne d'une feuille et que vous voulez faire une insertion de ligne en haut de la feuille, il y aura erreur car Excel ne pourra pas faire sortir l'objet de la feuille suite à l'insertion...
Il faudrait voir votre fichier pour répondre.
@ bientôt
LouReeD
bonjour LouReeD, Sitting_bull,
votre feuille est protégée ? Pouvez-vous nous montrer la partie en VBA qui cause l'erreur.
- Messages
- 260
- Excel
- Microsoft 365
- Inscrit
- 27/10/2022
- Emploi
- Expert technique réseau
Bonjour à tous les deux,
Private Sub addhosting_Click()
Dim i As Long
Dim Ligne_inser
If Me.sublan24 = "" Then
Else
'dans SUBNET PROD
With TS_lan
i = Application.Match(Me.sublan24, .ListColumns("Subnet IP").DataBodyRange, 0)
.ListColumns("Designation").DataBodyRange(i) = Me.descriplan
.ListColumns("VLAN").DataBodyRange(i) = Val(Me.vlanlan)
.ListColumns("Commentaire").DataBodyRange(i) = Me.commfinal3
End With
'DANS SPINE L3
With TS_spine
Set Ligne_inser = .ListRows.Add: i = Ligne_inser.index
.DataBodyRange(i, "A") = Me.vrflan
.DataBodyRange(i, "B") = "V" & Me.vrflan
.DataBodyRange(i, "C") = Me.vpninst
.DataBodyRange(i, "D") = "V" & Me.vrflan & "-" & Me.vpninst
.DataBodyRange(i, "E") = Me.commfinal3
.DataBodyRange(i, "F") = "=CONCAT(1000+[@[vpn-instance]],"":1"")"
.DataBodyRange(i, "G") = "Compute sans SNAT (LB en GW)"
.DataBodyRange(i, "H") = Me.sublan24
.DataBodyRange(i, "I") = "=IF([@[sous-réseau Compute]]="""","""",@IpSubnetLen([@[sous-réseau Compute]]))"
.DataBodyRange(i, "J") = ""
.DataBodyRange(i, "K") = Me.descriplan
.DataBodyRange(i, "L") = ""
.DataBodyRange(i, "M") = Me.vlanlan
.DataBodyRange(i, "N") = "0" & Me.vlanlan
.DataBodyRange(i, "O") = Me.descriplan
.DataBodyRange(i, "P") = ""
.DataBodyRange(i, "Q") = ""
.DataBodyRange(i, "R") = ""
ip = Me.sublan24
.DataBodyRange(i, "S") = ""
.DataBodyRange(i, "T") = ""
.DataBodyRange(i, "U") = ""
.DataBodyRange(i, "V") = IpAdd(ip, IpSubnetSize(ip) - 8)
.DataBodyRange(i, "W") = IpAdd(ip, IpSubnetSize(ip) - 7)
.DataBodyRange(i, "X") = IpAdd(ip, IpSubnetSize(ip) - 6)
.DataBodyRange(i, "Y") = IpAdd(ip, IpSubnetSize(ip) - 5)
.DataBodyRange(i, "Z") = "=INDEX(interco_FWP[1ère '@IP],MATCH(CONCAT([@[vpn-instance2]],""-FWP*""),interco_FWP[Designation],0))"
.DataBodyRange(i, "AA") = "=CONCATENATE(""ip route-static vpn-instance "",[@[vpn-instance4]],"" 0.0.0.0 0 "",[@[IP FW]],"" description FWP"")"
.DataBodyRange(i, "AB") = "=IFERROR(LEFT(VLOOKUP(CONCATENATE([@[vpn-instance2]],""-VIP""),VIP_LB[#Data],2,FALSE),LEN(VLOOKUP(CONCATENATE([@[vpn-instance2]],""-VIP""),VIP_LB[#Data],2,FALSE))-3),"""")"
.DataBodyRange(i, "AC") = "=IFERROR(RIGHT(VLOOKUP(CONCATENATE([@[vpn-instance2]],""-VIP""),VIP_LB[#Data],2,FALSE),2),"""")"
.DataBodyRange(i, "AD") = "=IFERROR(VLOOKUP(CONCAT([@[vpn-instance2]],""-LBI*""),interco_LBI[#Data],3,FALSE),"""")"
.DataBodyRange(i, "AE") = "=IF([@[S/R VIP]]="""","""",CONCATENATE(""ip route-static vpn-instance "",[@[vpn-instance4]],"" "",[@[S/R VIP]],"" "",[@[Masque VIP]],"" "",[@[IP LB]],"" description LBI""))"
.DataBodyRange(i, "AF").FormulaLocal = "=SIERREUR(GAUCHE(RECHERCHEV(CONCATENER([@[vpn-instance2]];""-VIP-02"");VIP_LB[#Données];2;FAUX);NBCAR(RECHERCHEV(CONCATENER([@[vpn-instance2]];""-VIP-02"");VIP_LB[#Données];2;FAUX))-3);"""")"
.DataBodyRange(i, "AG").FormulaLocal = "=SIERREUR(DROITE(RECHERCHEV(CONCATENER([@[vpn-instance2]];""-VIP-02"");VIP_LB[#Données];2;FAUX);2);"""")"
.DataBodyRange(i, "AH").FormulaLocal = "=SIERREUR(RECHERCHEV(CONCAT([@[vpn-instance2]];""-LBI*"");interco_LBI[#Données];3;FAUX);"""")"
.DataBodyRange(i, "AI").FormulaLocal = "=SI([@[S/R VIP]]="""";"""";CONCATENER(""ip route-static vpn-instance "";[@[vpn-instance4]];"" "";[@[S/R VIP secondaire]];"" "";[@[Masque VIP secondaire]];"" "";[@[IP LB]];"" description LBH""))"
.DataBodyRange(i, "AJ").FormulaLocal = "=CONCAT(""ip route-static vpn-instance "";[@[vpn-instance4]];"" "";@IpWithoutMask([@[sous-réseau Compute]]);"" "";[@Masque];"" "";[@[IP LB VIP secondaire]];"" description LBH"")"
.DataBodyRange(i, "AU") = "=CONCAT(""Z_"",[@[vpn-instance4]])"
End With
'DANS L2
With TS_L2
Set Ligne_inser = .ListRows.Add: i = Ligne_inser.index
.DataBodyRange(i, "A") = "0" & Me.vlanlan
.DataBodyRange(i, "B") = Me.descriplan
.DataBodyRange(i, "C") = "Compute sans SNAT (LB en GW)"
.DataBodyRange(i, "D") = "oui"
.DataBodyRange(i, "E") = "oui"
.DataBodyRange(i, "F") = "non"
.DataBodyRange(i, "G") = "oui"
.DataBodyRange(i, "H") = "non"
.DataBodyRange(i, "I") = "oui"
End With
'DANS ORION
With TS_orion
Set Ligne_inser = .ListRows.Add: i = Ligne_inser.index
.DataBodyRange(i, "A") = "0" & Me.vlanlan
.DataBodyRange(i, "C") = "0" & Me.vlanlan
.DataBodyRange(i, "D") = "0" & Me.vlanlan
.DataBodyRange(i, "E") = "0" & Me.vlanlan
.DataBodyRange(i, "B") = Me.descriplan
.DataBodyRange(i, "F") = Me.descriplan
.DataBodyRange(i, "G") = "Compute sans SNAT (LB en GW)"
.DataBodyRange(i, "H") = "BAGG10"
.DataBodyRange(i, "I") = "BAGG10"
.DataBodyRange(i, "J") = ""
.DataBodyRange(i, "K") = ""
End With
'DANS LB
With TS_lb
Set Ligne_inser = .ListRows.Add: i = Ligne_inser.index
Dim selfip1 As String
Dim selfip2 As String
Dim floating As String
Dim gateway As String
Dim masque As String
Dim snat1 As String
Dim snat2 As String
ip = Me.sublan24
.DataBodyRange(i, "A") = "V" & Me.vrflan & "-" & Me.vpninst
.DataBodyRange(i, "C") = "V" & Me.vrflan & "-" & Me.vpninst
.DataBodyRange(i, "D") = Me.descriplan
.DataBodyRange(i, "E") = Me.vlanlan
'valeur calculer à partir de fonction ip
selfip1 = IpAdd(ip, 2)
selfip2 = IpAdd(ip, 3)
floating = IpAdd(ip, 1)
masque = IpSubnetLen(ip)
gateway = IpAdd(ip, IpSubnetSize(ip) - 2)
snat1 = IpAdd(ip, 4)
snat2 = IpAdd(ip, 5)
.DataBodyRange(i, "I") = gateway
.DataBodyRange(i, "J") = gateway
.DataBodyRange(i, "F") = masque
.DataBodyRange(i, "K") = ""
.DataBodyRange(i, "L") = ""
.DataBodyRange(i, "M") = ""
.DataBodyRange(i, "G") = selfip2
.DataBodyRange(i, "H") = selfip1
End Withci-dessus une partie du code
la partie qui pose souci est l'écriture dans le TS_L2 dès le set ligne_inser
Si je mets cet ensemble en commentaire la suite de mon code fonctionne.
Je trouve cela étrange.
- Messages
- 260
- Excel
- Microsoft 365
- Inscrit
- 27/10/2022
- Emploi
- Expert technique réseau
Je pencherai pour un problème lié à la structure du tableau (ce code fonctionnait bien il y a qqs jours, mais étant un fichier partagé je me demande si une action par une tierse personne sur la structure n'a pas pu m'amener à cette erreur
- Messages
- 260
- Excel
- Microsoft 365
- Inscrit
- 27/10/2022
- Emploi
- Expert technique réseau
ce n'est pas un problème de code VBA, mais un problème Excel. Si je tente de copier des données et de les copier j'ai le même message sous excel :-(
Donc un problème directement dans la structure de mon tableau
Edit:bon et bien surprise!! Il s'agit en fait d'un filtre sur un autre tableau de la feuille (tableau qui n'est pas impacté par le code) qui me donnait cette erreur.
Je vais ajouter un morceau de code pour supprimer tous les filtres actifs de la feuille ce qui évitera ce genre de soucis à l'avenir
Bonsoir,
merci pour ce retour, cela servira certainement à d'autre ! Quelque fois les choses les plus simple nous passent sous les yeux !
@ bientôt
LouReeD