Macro: sélectionner tous les onglets entre 2 bornes

Résolu
Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,



J'ai un fichier excel avec 2 onglets intitulés "Borne 1" et "borne 2".
Je voudrais créer une macro qui sélectionne tous les onglets (quelque soit leur nombre) entre ces deux borne, afin de les supprimer.

Quelqu'un peut-il m'aider ?
Merci :-)
A voir également:

3 réponses

Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   31
 
Bonjour,

Pour cela, il faut procéder non pas par nom de l'onglet mais par son positionnement.

Dans le code que je vous propose, "Borne 1" est le 1er onglet et "Borne 2" le 9ème onglet. il suffit de changer les variable a et b pour coller à votre document (a = n° "borne 1" + 1 ; b = n° "borne 2" - 1).
Sub test()

a = 2
b = 8

For i = b to a step -1
sheets(i).select
ActiveWindow.SelectedSheets.Delete
Next i

End sub
0
Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Théo d'avoir répondu si rapidement.
Je viens de tester votre macro, et elle fonctionne très bien...
.. mais...
Le nombre d'onglets qui viennent se ranger entre borne 1 et borne 2. changent régulièrement. (Certains jours j'ai 15 onglets à traiter, d'autres 25...) La position "numérique" de borne 2 n'est donc pas toujours la même... Je ne peux donc pas toujours lui attribuer la place "9".

La macro que je voudrais mettre en oeuvre supprimera tous les onglets contenus entre borne 1 et 2 pour ensuite importer d'autres onglets à traiter.

PS: Borne 1 est fixe (donc pas de problème pour cet onglet...)
0
Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   31
 
le code suivant devrait fonctionner, il faut simplement bien nommer les onglets de référence respectivement "Borne 1" et "Borne 2" (ne pas oublier l'espace).
Sub test()

Sheets("Borne 1").select
a = ThisWorkbook.Worksheets.Count

Sheets("Borne 2").select
b = ThisWorkbook.Worksheets.Count

For i = b to a step -1
sheets(i).select
ActiveWindow.SelectedSheets.Delete
Next i

End sub
0
Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Théo
Hélas non, ça ne fonctionne pas... La macro que tu proposes supprime chaque onglet en commençant pas le dernier...
J'ai essayé ta macro dans tous les sens, en essayant de comprendre comment la modifier, mais mes connaissances en programmation VBA sont insuffisantes... :-(
0
Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   31 > Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé j'avais répondu ce matin mais mon internet a dû planter car je vois que ma réponse n'a pas été publiée..

Bref, ma macro doit supprimer les onglets entre tes bornes et les bornes elles-mêmes.

Si ce n'est pas le cas, est-il possible d'avoir un document via www.cjoint.com svp ?

Bien à vous,
0
Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Théo,
Voici le fichier:
https://www.cjoint.com/c/FBjq1W0d8Xf

Merci :-)
François
0
Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   31 > Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Le document n'est pas accessible (cest bien la 1ère fois que je vois cjoint.com bugguer..)

Possible de ré-essayer svp ;) ?
0
Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   31
 
Bon en fait mon code n'était pas bon, désolé je nous ai fait perdre du temps

Le bon code :
Sub test()
Application.DisplayAlerts = False

Sheets("Borne 1").Select

ActiveSheet.Next.Select

While ActiveSheet.Name <> "Borne 2"

ActiveWindow.SelectedSheets.Delete

Wend

Application.DisplayAlerts = True

End Sub
0
Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Super Théo,
Cette macro fonctionne à merveille.
Merci beaucoup pour votre persévérance ! (et désolé de vous répondre 2 jours après, je n'avais pas vu votre message)
Très bonne soirée. :-)

François
0
Theo.R Messages postés 575 Date d'inscription   Statut Membre Dernière intervention   31 > Frantoc37 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Pas de souci, ravi d'avoir pu rendre service ;)

Bonne continuation
0