Suprimer onglets en fonction d'une liste de Noms

Résolu/Fermé
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018 - 3 mai 2018 à 15:01
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 4 mai 2018 à 15:04
bonjour à tous
nouveau sur le forum, et comme prévu j'ai un blocage au niveau programme VBA n'en étant qu'à mes débuts.
je vous expose mon besoin : j ai un classeur nommé "Bibli" à l'intérieur une première feuille "Récup" avec une colonne A contenant une centaine de Nom, dans ce même classeur vient se copier des onglets (après la feuille "Récup") venant d'un autre classeur qui génère les onglets et les place dans le classeur "Bibli" et alimente la colonne A de "Récup" (ils peuvent être 2 comme 15) ce module tourne bien pas de souci.
Ce que je ne sais pas faire c'est : scruter la colonne A de "Récup" , passer en revue tous les noms d'onglet du classeur "Bibli", si le nom n'existe pas en A conserver l'onglet, dans le cas contraire, si un onglets possède un doublon, le supprimer.

j'espère que ma demande vous semble claire,
A voir également:

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 3 mai 2018 à 15:39
1
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018
3 mai 2018 à 17:34
Bonjour
Merci, Merci c'est une mine ce que vous venez de me transmettre, je vais creuser maintenant !
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
3 mai 2018 à 18:04
Une chose m'interpelle, il n'est pas possible d'avoir dans le même classeur 2 onglets portant le même nom!
Donc lors du transfert un message vous signale cette erreur.
Il est aisé de supprimer cet onglet a ce moment là.
0
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018
4 mai 2018 à 09:22
Bien vu Merci
l'écriture exacte du nom des onglets se présente comme cela : Onglet 11" (copier le 10/1/2018) et Onglet 11(2)" (copier le 3/5/2018) le point de recherche pourrait être sur le (2)
Je regarde la meilleure façon de procéder à la suppression suivant ce critère
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 4 mai 2018 à 12:03
Comme ceci avec un commandbutton dans ton UserForm

Option Explicit
Private Sub CommandButton1_Click()
BoucleFeuilles
End Sub
Sub BoucleFeuilles()
Dim val As String
Dim longueur As Integer
 Dim Ws As Worksheet
 Application.DisplayAlerts = False 'n'affiche pas les alertes en cas de suppression de feuille, a toi de voir
    'Boucle sur les feuilles du classeur.
    For Each Ws In ThisWorkbook.Worksheets
        val = Ws.Name
        longueur = Len(val) 'longueur chaine caracteres
        If longueur > 6 Then
        MsgBox Ws.Name ' a supprimer
        Ws.Delete  'suppression feuille
        End If
    Next Ws
    Application.DisplayAlerts = True
End Sub


dans ton module1 corrige toutes lignes contenant:

Sheets(" Recap").Select


par

Sheets(" Recup").Select


Voilà

@+ Le Pivert
0
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018
4 mai 2018 à 12:47
Grand Merci à vous et ccm81 pour la réactivité, vous êtes d"une aide précieuse
je touche au but, le proces est bon le résultat est bon.
le seul point bloquant c'est que la 'longueur chaine caractères du nom d'onglet ne doit pas rentrer en ligne de compte.
Est il faisable de faire une détection que sur " (2) " à la place de " If longueur > 6 " ? , car parfois il est possible d'en avoir de >=8.

Genre: Si Nom onglet contient " (2) " alors demande de suppression.
Si cela est possible la boucle est bouclé. (le (2) est toujours en fin de chaine de C. et il n y aura jamais de (3)).

Cordialement
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
3 mai 2018 à 16:01
Bonjour

Je ne sais pas si j'ai bien compris
https://www.cjoint.com/c/HEdoaSYMEnB

Cdlmnt
1
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018
3 mai 2018 à 17:50
Un grand Merci à vous,
nous touchons au but, l'action est bonne, Mais. il y a un mais .
1) si j'ai deux onglets identiques "Onglet 11" (copier le 10/1/2018) et Onglet 11" (copier le 3/5/2018) résident dans "Bibli" je ne dois en conserver qu'un seul (la date n'a pas d'incidence à ce stade).
2) peut être ai je fais une erreur en me calant sur une liste ? car la suppression s'exécute sur un nom précis présent en A ce n'est pas ce que j'attends, je dois conserver tous les onglets (avec un nom diffèrent pour chaque) que je copie au fur et à mesure de mes travaux et ne doivent disparaitre, que un onglet sur les deux ou trois portant le même nom (chose qui arrive à chaque transfert d'onglet via mon autre application).
est-il pensable de ne jouer que sur les onglets sans faire appel à la liste ?
Détection : même nom plusieurs fois = En garder UN + suppression des doublons pour ce même nom.

ceci dit ton exemple est intéressant à plus d'un titre car il va trouver sa place dans une autre affaire que je vais faire plus tard.

Cordialement.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
3 mai 2018 à 18:08
Le problème n'est pas tout à fait le même !!!
si j'ai deux onglets identiques "Onglet 11" (copier le 10/1/2018) et Onglet 11" (copier le 3/5/2018) résident dans "Bibli" ???
Deux onglets ne peuvent pas avoir le même nom dans un classeur
Sans un bout de fichier et des exemples de résultats attendus, ça va être difficile de t'aider

Cdlmnt
1
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018
4 mai 2018 à 09:18
Bien vu,
il me semblait bien que ma demande n'était pas complète, l'écriture exacte du nom des onglets se présente comme cela : Onglet 11" (copier le 10/1/2018) et Onglet 11(2)" (copier le 3/5/2018)
je prépare un fichier xls pour exemple cela sera mieux qu'un grand discours.
0
KIRE36 Messages postés 9 Date d'inscription jeudi 3 mai 2018 Statut Membre Dernière intervention 4 mai 2018
4 mai 2018 à 11:28
Ci joint le lien (2 fichiers) pour exemple
https://www.cjoint.com/c/HEejxhXeGYq

Cordialement
0