Copie une feuille dans une autre Vba
malouve
Messages postés
63
Statut
Membre
-
malouve -
malouve -
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
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
Configuration: Windows XP Internet Explorer 7.0
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"). -
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