Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Ajout de feuille indépendante du code source

Messan

XLDnaute Junior
Bonsoir le forum
J'incline la tête pour vous.
Grace à vous j'ai eu ce document bien codé auquel je sollicite encore une fois votre aide pour une modification du code.
D'après le code, l'exécution du code supprime toutes les feuilles différentes de la feuille source (Feuil1) et récré de nouvelles selon la programmation.

Maintenant je voulais pouvoir ajouter des feuilles qui contiendront également des données comme la feuille source et qui doivent être exclus lors de l'exécution du code.


NB: j'avais enregistrer un macro pour ajouter de feuilles qui marche mais à l'exécution du premier code cette nouvelle feuille est supprimer avant d'être ajouter par le second code mais dans ce cas les données sur cette feuille me sont supprimer.

Aider moi à pouvoir ajouter des feuilles qui ne seront pas supprimer à l'exécution du code.
 

Pièces jointes

  • Liste des bénéficiaires.xlsm
    331.8 KB · Affichages: 18

Messan

XLDnaute Junior
Bonjour Grand.

Je reviens car votre correction semble marcher mais il y a une erreur d'exécution "13" Incompatibilité de type à ligne 93 du module 1 à l'ajout de nouvelle feuille bien que la feuille n'est pas supprimée.

NB: le bouton extraire permet d'exécuter le module 1
 

Messan

XLDnaute Junior
Bonjour.
Quelle est cette instruction ?
Rebonjour mon grand,

Voici l'instruction: la ligne coloriée est l'instruction en question (qui demande débogage quand j'ajoute une feuille et exécute le code)

For I = 1 To UBound(TD) 'boucle 1 : sur toutes les date I du tableau des dates TD
For J = 1 To UBound(TD) 'boucle 2 : sur toutes les date J du tabeau des dates TD
If I <> J Then 'condition : si I est différente de J
If CInt(Split(TD(I), "-")(0)) < CInt(Split(TD(J), "-")(0)) Then 'condition 2 : si le premier chiffre avant le tiret a date TD(I)est supérieur au premier chiffre avant le tiret de la date TD(J)
TMP = TD(J): TD(J) = TD(I): TD(I) = TMP 'définit la temporaire TMP, TD(J) devient TD(I),TD(I) devient la temporaire TMP (soit TMP(J)), inversion de l'ordre des dates
End If 'fin de la condition 2
End If 'fin de la condition 1
 

Dranreb

XLDnaute Barbatruc
Mettez des espions lors du débogage pour vérifier les valeurs de vos Split(TD(I et J)(0). Peut être que ce n'est pas numérique. Peut être qu'en prenant Val(TD(I)) ça passerait mieux: il s'arrêterait au 1er caractère non numérique et renverrait 0 s'il n'aura trouvé aucun chiffre,
Vous devriez peut être aussi ne prendre plus haut que les Sheets(I).Name Like "*-* ans"
 

Messan

XLDnaute Junior
S'il vous plaît grand je n'arrive pas à le faire.
Doléances si vous pouvez me corriger directement le fichier ci joint.
Essayer d'ajouter une feuille et cliquer sur le bouton <<exécuter>> ou <<module 1>>et vous verrez le bug.

J'avoue que je suis un novice en VBA
 

Pièces jointes

  • Liste des bénéficiaires.xlsm
    334 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Je ne vois bouton ni "exécuter" ni "module 1". Il y a "Extraire" et "Mise en forme"
et en exécutant Macro1 de Module1 après avoir ajouté une feuille je n'ai pas eu de plantage.
 

Dranreb

XLDnaute Barbatruc
En l'exécutant une seconde fois j'ai eu un plantage là où vous dites à cause d'une "Feuill9" parmi les noms stockés en tableau TD. Pourquoi ne limitez vous pas le contenu de ce tableau aux noms qui sont Like "*-* ans" ? If Sheets(I).Name Like "*-* ans" Then serait même plus simple que If Not Sheets(I).Name = "Feuil1" And Not Sheets(I).Name = "Supérieur à 22" Then
 

Messan

XLDnaute Junior
S'il vous plaît j'aurai d'autres données à insérer sur de nouvelles feuilles.

Que quelqu'un m'aide en revoyant le code de façon à pouvoir ajouter des feuilles (pas via VBA) sans plantage
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Pourquoi ne pouvez vous pas reprogrammer ça ?
De mon coté j'ai déjà commencé une toute nouvelle procédure d'éclatement par tranches d'ages de la 1ère feuille. Mais comme j'utilise de toute façon pour cela un outil qui effectue un classement, auriez vous une préférence quant à l'ordre dans lequel ça se retrouveraient dans les feuilles par tranche d'age ? Est-ce que vous souhaiteriez que je mette tout sous forme de tableaux, y compris les données ?
 

Messan

XLDnaute Junior
Rebonjour,
Pour l'instant je propose que vous les mettez sous forme de tableau
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…