Macros pour Onglets, Sauvegardes et plein d'autres si possible !

WDAndCo

XLDnaute Impliqué
Bonsoir le Forum

Voici une Macro qui cache l'onglet actif et s'active sur l'onglet "Choix" etc....
Code:
Sub Retour()
ActiveWindow.SelectedSheets.Visible = False
    Sheets("Choix").Select
    Columns("A:M").Select
    ActiveWindow.Zoom = True
     Cells.Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    
    Range("A1").Select
End Sub
Comment cacher tous les onglets présents en bas sauf l'onglet "Choix" ?
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Re,

perso aurais plutôt vu ca ainsi :
Code:
Dim ws As Worksheet
 Application.EnableEvents = False
  For Each ws In ThisWorkbook.Worksheets
      If ws.Visible = xlSheetVisible And ws.Name <> "Choix" Then
          With Workbooks("classeurDestination.xls")
            ws.Copy .Sheets(.Sheets.Count)
          End With
      End If
  Next ws
 Application.EnableEvents = True

les 2 classeurs doivent être ouverts...

bonne soirée
@+
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonjour le Forum

Merci pour votre patience, il vous en vaudras encore beaucoup !
La solution de Pierrot93 me conviens. il est vrai que le classeur disons Maitre ou base doit rester ouvert et un autre doit s'ouvrir pour recevoir la copie.

Voila idée de départ : une base de X onglets (méthode de maintenance)
Un onglet "Choix" qui permet de faire un choix de l'installation a maintenir en fonction de ce choix il peut y avoir 1, 2, 3 voir 4 onglets nécessaires pour la réalisation de cette maintenance.
Et l'utilisateur final ne doit avoir que des copies des ces onglets. Ces copies seront dans un dossier "Mes Fiches", dans lequel chaque installation seras dans son classeur au non de l’installation qui est en (AA1) de chaque onglet.

Bien sur je me tiens a votre disposition pour éclaircir tous cela !
Dominique
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonjour le Forum
Code:
Sub CopieDeFiches()
Dim ws As Worksheet
 Application.EnableEvents = False
  For Each ws In ThisWorkbook.Worksheets
      If ws.Visible = xlSheetVisible And ws.Name <> "Choix" Then
          With Workbooks("Copie.xls")'Comment donner comme nom du classeur le contenu de la cellule O4 ?
            ws.Copy .Sheets(.Sheets.Count)
          End With
      End If
  Next ws
 Application.EnableEvents = True
End Sub

With Workbooks("Copie.xls") Comment donner comme nom du classeur le contenu de la cellule O4 ? Pour info ce ne seras pas toujours les même onglet qui seront copié.
 

Pierrot93

XLDnaute Barbatruc
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonsoir,
With Workbooks("Copie.xls") Comment donner comme nom du classeur le contenu de la cellule O4 ? Pour info ce ne seras pas toujours les même onglet qui seront copié.

essaye ceci, la cellule doit contenir l'extension(.xls), c'est celle de la feuille active du classeur actif... sinon il faudra le préciser devant l'objet "range"
Code:
With Workbooks(range("A4").Value)

bonne soirée
@+
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonsoir le Forum et Pierrot93, merci pour cette solution, mais comment l'adapter car ce ne seras jamais les mêmes onglets à copier. Peut être en mettant le nom de l’installation dans une cellule précise de l'onglet "Choix". Comment cette cellule peut elle récupérer le nom de l'installation si ce n'est pas toujours les mêmes onglets ouverts ?
 

Pierrot93

XLDnaute Barbatruc
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonsoir,

le dernier code donné répondait à la 1ère phrase de ce paragraphe...
With Workbooks("Copie.xls") Comment donner comme nom du classeur le contenu de la cellule O4 ? Pour info ce ne seras pas toujours les même onglet qui seront copié.

pour les noms des feuilles... comptrends pas trop, en l'état ce qui compte c'est que le nom soit différent de "choix" et que la feuille soit visible, peu importe le nom... celui utilisé est celui de la feuille d'origine...

bonne soirée
@+
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonsoir,
Le nom de la feuille est en faite 1, 2, 3 etc, de plus par exemple la 2 appelle la 2C + VCC,
Ces feuilles sont des fiches de maintenance disons les fiches de références.
Les futures utilisateurs (plus nul que moi en Excel) choisirons les fiches dont ils aurons besoin en fonctions de leurs installations.
D’où intérêt de nommer correctement leurs copies de fiches. Qui serons dans un dossier "Mes Fiches"
Voila j’espère avoir été plus clair.
 

Pierrot93

XLDnaute Barbatruc
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonjour,

et tu bloques ou maintenant dans ton code ? d'ailleurs quel est celui que tu utilisers et que tu veux modifier ? pour renommer une feuille, il faut modifier sa propriété "name", comme ceci par exemple :
Code:
ActiveSheet.Name = "mafeuille"
bonne journée
@+
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonsoir le Forum
Code:
Sub CopieDeFiches()
Dim ws As Worksheet
 Application.EnableEvents = False
  For Each ws In ThisWorkbook.Worksheets
      If ws.Visible = xlSheetVisible And ws.Name <> "Choix" Then
          With Workbooks("Copie.xls")
            ws.Copy .Sheets(.Sheets.Count)
ActiveSheet.Name = "Ma Fiche " & ws ' je peux mettre cela ?
          End With
      End If
  Next ws
 Application.EnableEvents = True
End Sub
Voici le code qu j'utilise actuellement. Je peux mettre cela ? :
Code:
ActiveSheet.Name = "Ma Fiche " & ws
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonjour le Forum et bon 14 juillet a tous.

Code:
Sub CopieDeFiches()
Call VerifieDossier
Dim ws As Worksheet
 Application.EnableEvents = False
  For Each ws In ThisWorkbook.Worksheets
      If ws.Visible = xlSheetVisible And ws.Name <> "Choix" Then
          With Workbooks("Copie.xls")
            ws.Copy .Sheets(.Sheets.Count)
          End With
      End If
  Next ws
 Application.EnableEvents = True
End Sub
ActiveSheet.Name = "Ma Fiche " & ws.Name 'Je mets cela ou ?
Code:
Sub VerifieDossier()
Dim Chemin As String
Chemin = "F:\Applicat\Mes Fiches"
If Dir(Chemin, vbDirectory) > "" Then
Exit Sub
Else
MsgBox "Le dossier 'Mes Fiches' dans 'F:\Applicat\' n'existe pas ! Je le crée."
MkDir "F:\Applicat\Mes Fiches"
End If
End Sub
' Comment faire lorsque il n'y a pas de DD F ?

Encore merci pour votre aide.
 

Softmama

XLDnaute Accro
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonjour,

Réponses à tes 2 questions :
1-
VB:
Sub CopieDeFiches()
Call VerifieDossier
Dim ws As Worksheet
 Application.EnableEvents = False
  For Each ws In ThisWorkbook.Worksheets
      If ws.Visible = xlSheetVisible And ws.Name <> "Choix" Then
          With Workbooks("Copie.xls")
            ws.Copy .Sheets(.Sheets.Count)
            ActiveSheet.Name = "Ma Fiche " & ws.Name
          End With
      End If
  Next ws
 Application.EnableEvents = True
End Sub
2- Mets en début de procédure :
VB:
If Dir("f:", vbDirectory) = "" Then MsgBox "F: n'existe pas": exit Sub
 

WDAndCo

XLDnaute Impliqué
Re : Macros pour Onglets, Sauvegardes et plein d'autres si possible !

Bonsoir le Forum

Me, re voila.
Donc voici mon dernier souci (un bien grand mot !)
J'ai donc un classeur avec 100 feuilles (C'est le magasin)
L'utilisateur viens faire ces courses, il prends la feuille 52 qui appelle la 52C et la VCC,
il sauve ses 3 feuilles dans le dossier 'Mes Fiches' là il faut qu'il donne un nom a son classeur ! Pour cette sauvegarde.
Puis il continue ces courses il prends la feuille 22, il fait comme ici dessus. Et ainsi de suite.

Comment réaliser cela ?
 

Discussions similaires

Réponses
38
Affichages
4 K

Statistiques des forums

Discussions
312 239
Messages
2 086 494
Membres
103 234
dernier inscrit
matteo75654548