OVH Cloud OVH Cloud

excel onglet macro

3 réponses
Avatar
jive7
Bonjour,

voilà je veux creer une macro qui copie les valeurs contenues dans un onglet
(exemple "ma base") dans un deuxieme oblet (exemple "copie ma base"). Le
probléme c'est que excel, lors de la création de l'onglet me met un nom
d'onglet (exemple "Feuil15"). Ainsi si je relance la macro, excel cherchera
onglet 15 alors que il existe plus on a créer un nouvel onglet qui desormais
s'appel "Feuille16" et du coup plantage !

voici l'exemple de mon code

'selection de la base jusqu'a la colonne fin projet
Range("B2:BA633").Select
'copie de la base
Selection.Copy
Sheets("MaBase").Select
'ajoute un objet a une collection, ici la feuille à la collection du classeur
Sheets.Add
'collage
ActiveSheet.Paste
'selection de l'onglet
Sheets("Feuil15").Select
'renome l'onglet feuil15 : "report1"
Sheets("Feuil15").Name = "report1"
'selection de toute la ligne 4
Rows("4:4").Select
...ect
end sub

3 réponses

Avatar
papou
Bonjour
En procédant comme ceci, tu devrais mieux t'en sortir ;-)
Dim LaFeuille As Worksheet
Set LaFeuille = ThisWorkbook.Worksheets.Add
'éventuellement tu lui donnes un nom :
'LaFeuille.Name = "TonNom"

Cordialement
Pascal

"jive7" a écrit dans le message de news:

Bonjour,

voilà je veux creer une macro qui copie les valeurs contenues dans un
onglet
(exemple "ma base") dans un deuxieme oblet (exemple "copie ma base"). Le
probléme c'est que excel, lors de la création de l'onglet me met un nom
d'onglet (exemple "Feuil15"). Ainsi si je relance la macro, excel
cherchera
onglet 15 alors que il existe plus on a créer un nouvel onglet qui
desormais
s'appel "Feuille16" et du coup plantage !

voici l'exemple de mon code

'selection de la base jusqu'a la colonne fin projet
Range("B2:BA633").Select
'copie de la base
Selection.Copy
Sheets("MaBase").Select
'ajoute un objet a une collection, ici la feuille à la collection du
classeur
Sheets.Add
'collage
ActiveSheet.Paste
'selection de l'onglet
Sheets("Feuil15").Select
'renome l'onglet feuil15 : "report1"
Sheets("Feuil15").Name = "report1"
'selection de toute la ligne 4
Rows("4:4").Select
...ect
end sub



Avatar
Hervé
bonjour


essayes comme ceci :

Dim feuille As Worksheet
'copie de la base
Range("B2:BA633").Copy
'ajoute un objet a une collection, ici la feuille à la collection du classeur
Set feuille = Sheets.Add
'collage
ActiveSheet.Paste
'selection de l'onglet
With feuille
.Select
'renome l'onglet feuil15 : "report1"
.Name = "report1"
End With
'selection de toute la ligne 4
Rows("4:4").Select

salut
Avatar
JLuc
*Bonjour jive7*,
Papou et Hervé ton bien demele le probleme, seul petit oubli, c'est que
si tu relance ta macro il faut quand meme verifier l'extistance :

Dim LeNom As String
Dim flag As Boolean
LeNom = "TonNom"
For Each feuille In Sheets
If feuille.Name = LeNom Then flag = True
Next
If flag Then
Sheets(LeNom).Cells.ClearContents
Else
Sheets.Add after:=Sheets(Sheets.Count) 'en dernier
Sheets(Sheets.Count).Name = LeNom
End If
' et ici le reste de ton code



Bonjour,

voilà je veux creer une macro qui copie les valeurs contenues dans un onglet
(exemple "ma base") dans un deuxieme oblet (exemple "copie ma base"). Le
probléme c'est que excel, lors de la création de l'onglet me met un nom
d'onglet (exemple "Feuil15"). Ainsi si je relance la macro, excel cherchera
onglet 15 alors que il existe plus on a créer un nouvel onglet qui desormais
s'appel "Feuille16" et du coup plantage !

voici l'exemple de mon code

'selection de la base jusqu'a la colonne fin projet
Range("B2:BA633").Select
'copie de la base
Selection.Copy
Sheets("MaBase").Select
'ajoute un objet a une collection, ici la feuille à la collection du classeur
Sheets.Add
'collage
ActiveSheet.Paste
'selection de l'onglet
Sheets("Feuil15").Select
'renome l'onglet feuil15 : "report1"
Sheets("Feuil15").Name = "report1"
'selection de toute la ligne 4
Rows("4:4").Select
...ect
end sub


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O