VBA macro pb

VBA macro pb - VB/VBA/VBS - Programmation

Marsh Posté le 18-03-2005 à 22:42:38    

Bonjour     :hello:  
 
je suis complétement novice en VBA  
et je voudrais automatiser certaines opérations répétitives... voila mon but :
A l’ouverture d’une feuille Excel :
L’utilisateur sélectionne des feuilles dans le fichier ouvert :
La macro doit Pouvoir réaliser, dans ces feuilles sélectionné un copier coller  
- Des valeurs (seulement)  
- Des formats des feuilles
- Si possible des photos éventuels  
 
Et sauvegarder ça dans un autre fichier.
 
 
 
voici ma macro :
 
_____________________________________________________________________
 
Sub cut_paste()
 
Application.ScreenUpdating = False
 
    Cells.Select
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    ChDir "D:\Download"
 
 
    ActiveWorkbook.SaveAs Filename:="D:\Download\Classeur1.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
 
Application.ScreenUpdating = True
 
End Sub
 
_________________________________________________________________
 
Ma question      
 
Lorsque j'exécute cette macros,
les images ne sont pas recopiées
 
- comment faire qu'il me recopie également les images?
 
- comment faire pr qu'il me garde la mise en page du document d'origine?
 
- si je choisis plus de 3 feuilles a recopier, il me met une erreur car Excel crée par défaut un classeur avec 3 feuilles...  
je sais qu'il faut que j'utilise  " Application.SheetsInNewWorkbook=..."
mais je ne sais pas comment?  
 
 
Si qq'un peut m'aider pr ces questions  
merci d'avance.      ;)

Reply

Marsh Posté le 18-03-2005 à 22:42:38   

Reply

Marsh Posté le 19-03-2005 à 09:28:25    

Je te propose cela : simple et efficace.
 
 
    Sheets("TAFEUILLE" ).Copy      
    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False  
    ActiveWorkbook.SaveAs Filename:=:="D:\Download\Classeur1.xls" , FileFormat:=xlNormal, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    workbooks("classeur1.xls" ).close(false)  
 
 
 
Ouverture avec le bon nombre de feuilles :
'pour info ajout classeur 1 feuille. Mais avec ce que je t'ai fait tu n'en as pas besoin
Sub NBFEUILLE(lenombre as integer)
  'garde cette info pour remettre comme avant à la fin
   nbsheets=Application.SheetsInNewWorkbook  
   Application.SheetsInNewWorkbook = lenombre
   Application.Workbooks.Add
   'remet le nombre par défaut
   Application.SheetsInNewWorkbook=nbsheets
end sub

Reply

Sujets relatifs:

Leave a Replay

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