Bonjour
Je fais appel à vos connaissances car j'ai un code VBA que Fanch55 a créé pour moi mais j'ai une erreur lors de la manipulation du fichier pour changer le chiffre dans la cellule dans la colonne nombre de lignes.
L'erreur est Erreur d'éxécution '1004'
Le déplacement des cellules dans un tableau de votre feuille de calcul n'est pas autorisé
L'erreur sur la macro se situe à la ligne TabMain.ListRows.Add 1 dans la macro ci-dessous :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Get_Tabmain(Sh) Then
Application.EnableEvents = False
TabMain.DataBodyRange.Rows.Delete
For Each Lobj In Sh.ListObjects
If Lobj.Name <> TabMain.Name Then
TabMain.ListRows.Add 1
TabMain.ListColumns("Tableau").DataBodyRange(1) = Lobj.Name
End If
Next
Application.EnableEvents = True
Info_Tableau Sh
End If
End Sub
Le probléme vient peut être du fait que le nombre de ligne (dans le tableau sur fond bleu) est issue d'une formule matricielle (qui ressemble à celle ci-dessous) qui calcule le nombre de ligne nécessaire au tableau. Cette formule n'est pas mise dans le fichier exemple car il n'est pas possible d'insérer une formule dans ce tableau.
=MAX(SI(ESTNUM(CHERCHE(F4;Récap_PSPeurs_départemental[Concat classement pspeur départemental]));CNUM(SUBSTITUE(Récap_PSPeurs_départemental[Concat classement pspeur départemental];F4 ))
Les pistes (non exhaustives) que j'ai trouvé sont :
- convertir les tableaux en plage (est-ce que cela peut débloquer la situation, mais je perdrai les filtres et l'insertion automatique des formules dans mon tableau) Dans l'exemple je n'ai pas mis de formule pour simplifier.
- la colonne ligne n'est pas la colonne la plus à gauche dans mon tableau mais la seconde. Dois-je inverser les 2 colonnes pour que cela puisse fonctionner. Ce n'est pas le cas dans mon fichier exemple.
Le fichier fonctionne par la table de contrôle qui a l’entête de colonne "Nombre de lignes" avec un commentaire "TabMain" , est exécuté pour chaque feuille activée.
Je vous joins un fichier exemple mais sur ce fichier l'erreur n'apparait pas pour vous aider car je ne peux pas envoyer mon fichier complet car il est confidentiel.
Merci pour aide.
GS
Je fais appel à vos connaissances car j'ai un code VBA que Fanch55 a créé pour moi mais j'ai une erreur lors de la manipulation du fichier pour changer le chiffre dans la cellule dans la colonne nombre de lignes.
L'erreur est Erreur d'éxécution '1004'
Le déplacement des cellules dans un tableau de votre feuille de calcul n'est pas autorisé
L'erreur sur la macro se situe à la ligne TabMain.ListRows.Add 1 dans la macro ci-dessous :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Get_Tabmain(Sh) Then
Application.EnableEvents = False
TabMain.DataBodyRange.Rows.Delete
For Each Lobj In Sh.ListObjects
If Lobj.Name <> TabMain.Name Then
TabMain.ListRows.Add 1
TabMain.ListColumns("Tableau").DataBodyRange(1) = Lobj.Name
End If
Next
Application.EnableEvents = True
Info_Tableau Sh
End If
End Sub
Le probléme vient peut être du fait que le nombre de ligne (dans le tableau sur fond bleu) est issue d'une formule matricielle (qui ressemble à celle ci-dessous) qui calcule le nombre de ligne nécessaire au tableau. Cette formule n'est pas mise dans le fichier exemple car il n'est pas possible d'insérer une formule dans ce tableau.
=MAX(SI(ESTNUM(CHERCHE(F4;Récap_PSPeurs_départemental[Concat classement pspeur départemental]));CNUM(SUBSTITUE(Récap_PSPeurs_départemental[Concat classement pspeur départemental];F4
Les pistes (non exhaustives) que j'ai trouvé sont :
- convertir les tableaux en plage (est-ce que cela peut débloquer la situation, mais je perdrai les filtres et l'insertion automatique des formules dans mon tableau) Dans l'exemple je n'ai pas mis de formule pour simplifier.
- la colonne ligne n'est pas la colonne la plus à gauche dans mon tableau mais la seconde. Dois-je inverser les 2 colonnes pour que cela puisse fonctionner. Ce n'est pas le cas dans mon fichier exemple.
Le fichier fonctionne par la table de contrôle qui a l’entête de colonne "Nombre de lignes" avec un commentaire "TabMain" , est exécuté pour chaque feuille activée.
Je vous joins un fichier exemple mais sur ce fichier l'erreur n'apparait pas pour vous aider car je ne peux pas envoyer mon fichier complet car il est confidentiel.
Merci pour aide.
GS