Copie une feuille dans une autre Vba

Fermé
malouve Messages postés 56 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 20 juillet 2010 - 23 juil. 2009 à 12:00
 malouve - 20 août 2009 à 12:37
Bonjour,

je voudrais copier la première feuille d'un classeur dans un autre claaseur déjà ouvert
j'utilise ce code
mais une erreur 'out of range' m'empêche d'avancer et pourtant la syntaxe ne me parait pas contenir une erreur
pouvez vous m'aider
les 2 fichiers ont la même extension

Workbooks.Open Filename:="C:\Documents and Settings\Desktop\fichier_conf.xlsx"
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "essai"
MsgBox "Voulez-vous copier le fichier config dans " & nom_feuille ' message
Sheets(essai).Copy Before:=Sheets(nom_feuille) 'erreur vient de là
Filename.Close ' fermeture

'nom_feuille c'est le nom du classeur et aussi de la première feuille du classeur dans laquel je dois faire la copie
je précise que j'ai essayé plusieurs syntaxes comme celle là mais j'ai toujours la même erreur
Workbooks(Fichier1).Sheets("Feuil1").Copy Before:=Workbooks(Fichier2).Sheets("Feuil3")

Merci c'est très urgent
A voir également:

2 réponses

Salut malouve,
le problème, c'est que tu utilises mal sheets. Sheets prend en argument le numéro de la feuille par exemple: ThisWorkbook.Sheets(1).Activate. Si tu veux utiliser le nom de la feuille, la syntaxe est plutôt: Worksheets("nom_feuille").
0
merci WVT pour ta réponse
j'ai pu résoudre ce problème et utilisant ton idée
cependant, j'ai un autre soucis qui me casse la tête depuis des lustres, et qui est survenu un jour sans modification de mon code alors qu'il marchait très bien

dans mon classeur qui contient déjà 2 feuilles ( nom-feuille et fic conf -- tu viens de me répondre à ce post) , je crée de nouvelles feuilles contenant des graphes ( 6 au total)
les données de ses graphes viennent de la feuille 'nom_feuille'
lorsque les graphes sont crées la premiere feuille de graphe écrase ma feuille fic_conf au lieu de s'ajouter

le code utilisé pour la création des graphes est le suivant;
unction Graphe(Nbre_de_feuille As Integer)
On Error GoTo err_graph
Dim i As Integer
Dim Mn As Integer
Mn = 0
For i = 1 To Nbre_de_feuille
    j = i - 1 // je pense que le pb vient d'ici mais je en comprends pas et même si je change ( en mettant 2) il ecrase cette fois ci 'nom_feuille'
    Worksheets.Add
    Mn = Mn + 5
    Sheets(i - j).Select
    Sheets(i - j).Activate
    Sheets(i - j).Name = "Mns_" & Mn 'Pour dire control de 5e ou la 10e mn
    AddChartObject
    
Next i

Exit Function
err_graph:
MsgBox Err.Description
End Function


Sub AddChartObject()
Dim j As Integer
Dim pat As Long
pat = memopat

If G_pat <= ligntot Then
 With ActiveSheet
    
    For j = 1 To 5
    
        If j = 1 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=20, Height:=175).Select
        If j = 2 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=225, Height:=175).Select
        If j = 3 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=425, Height:=175).Select
        If j = 4 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=625, Height:=175).Select
        If j = 5 Then ActiveSheet.Shapes.AddChart(Left:=50, Width:=700, Top:=825, Height:=175).Select
       
       With ActiveChart
        .ChartType = xlColumnClustered
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Name = "Min" & j
        .SeriesCollection(1).Values = "=" & "DATA" & "!$B$" & pat + 5 & ":$B$" & pat + 12004 & ""
        pat = pat + 12000
        
       End With
    Next j
  
End With
End If


memopat = pat

End Sub


merci de me donner un coup de main si tu y comprends quelque chose , c'est urgent et je commence à péter un plomb
je répète que ce pb est survenu d'un coup sans aucune modification du code
0