classeur excel / onglet excel

classeur excel / onglet excel - VB/VBA/VBS - Programmation

Marsh Posté le 22-12-2011 à 14:36:11    

Bonjour
 
je cherche a faire une macro qui me permette de nommer un onglet suivant la valeur d'une cellule
j ai cherché et trouver des choses mais qui ne semble pas fonctionner
ma cellule est la cellule E1 dans mon cas
 
et une autre macro qui me créé un fichier excel pour chaque onglet de mon fichier principal en supprimant les autres onglets
et si possible qui reprenne le nom de l onglet
donc un classeur avec comme onglet A,B,C et D
devient un classeur A, un B, un C et un D

Reply

Marsh Posté le 22-12-2011 à 14:36:11   

Reply

Marsh Posté le 22-12-2011 à 14:42:09    

j ai trouve ceci
mais cela ne fonctionne pas
Windows("factures.xls" ).Activate
Set wb = ActiveWorkbook
For Each ss In wb.Sheets
    Application.CutCopyMode = False
   ss.Copy
   ActiveWorkbook.SaveAs Filename:= _
        "Mettre ici le chemin" & ss.Name & ".xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
   
    Windows("fichier1.xls" ).Activate
Next

Reply

Marsh Posté le 22-12-2011 à 14:47:01    

j ai aussi essaye en faisant enregistrement macro
cela donne ceci:
    Range("H5" ).Select (petit changement de place de ma cellule)
    ActiveCell.FormulaR1C1 = "XXXXX"
    Sheets("yyyyy" ).Select
    Sheets("yyyyy" ).Name = "XXXXX"
 
le nom de mes onglets sont differents dans le classeur

Reply

Marsh Posté le 22-12-2011 à 16:19:10    

cool merci
j avais fait ceci en attendant:
 
' renommage onglet
sub onglet()
ActiveSheet.Name = Range("H5" ).Value
end sub
 
'Eclate fichier
 
Sub Macro1()
Dim LeNom, S As Integer
LeNom = Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 4)
For S = 1 To Sheets.Count
Sheets(S).Copy
With ActiveWorkbook
.SaveAs LeNom & "_" & S & ".xls"
.Close
End With
Next S
End Sub
 
 
Sub Macro2()
Dim LeNom, S As Integer
For S = 1 To Sheets.Count
LeChemin=ThisWorkbook.Path
LeNom=LeChemin+Range("H5" ).Value
Sheets(S).Copy
With ActiveWorkbook
.SaveAs LeNom & ".xls"
.Close
End With
Next S
End Sub
 
1er macro le renommage niquel mais onglet par onglet
2eme macro me decoupait bien mais sans prendre le nom de l onglet comme nom de fichier
3eme macro me decoupait et donnait toujours le meme nom de fichier du coup cela s arretait au 2éme fichiers et en plus ne sauvegardait plus le fichier au bon endroit

Reply

Marsh Posté le 22-12-2011 à 16:29:10    

Salut, après correction par rapport au post précédent

Option Explicit
 
Sub DecoupageClasseur()
Dim Ws As Worksheet
Dim Wkb As Workbook
 
    Application.ScreenUpdating = False
     
    For Each Ws In ThisWorkbook.Worksheets
        Set Wkb = Workbooks.Add
        Ws.Copy Wkb.ActiveSheet
         
        With Application
            .DisplayAlerts = False
            .CutCopyMode = False
        End With
        Wkb.Worksheets("Feuil1" ).Delete
        Wkb.SaveAs Filename:=ThisWorkbook.Path & "\" & Ws.Name & ".xls", FileFormat:=xlNormal
        ActiveWindow.Close
        Application.DisplayAlerts = True
    Next Ws
    Application.ScreenUpdating = True
End Sub


Message édité par kiki29 le 22-12-2011 à 16:36:38

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 22-12-2011 à 17:04:42    

alors merci
ceci fonctionne niquel
 
 
Option Explicit
 
 
Sub renommeEtCoupe()
Dim Ws As Worksheet
Dim Wkb As Workbook
 
Application.ScreenUpdating = False
 
For Each Ws In ThisWorkbook.Worksheets
Set Wkb = Workbooks.Add
Ws.Copy Wkb.ActiveSheet
 
Wkb.ActiveSheet.Name = Ws.Name
 
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("H5" ) & ".xls", FileFormat:=xlNormal
ActiveWindow.Close
Application.DisplayAlerts = True
Next Ws
Application.ScreenUpdating = True
 
End Sub
 

Reply

Marsh Posté le 22-12-2011 à 17:37:17    

Re, tu fonctionnes par psittacisme, à quoi bon répéter un code incomplet,inexact et non balisé ?


Message édité par kiki29 le 22-12-2011 à 17:38:30

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 23-12-2011 à 09:08:38    

???
pas compris

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed