Ajout d'une nouvelle feuille à un classeur

Fermé
N3v4dA Messages postés 2 Date d'inscription vendredi 23 octobre 2015 Statut Membre Dernière intervention 23 octobre 2015 - 23 oct. 2015 à 16:20
 n3v4d4 - 30 oct. 2015 à 09:40
Bonjour, à tous

Alors voici mon problème :
J'aimerais pouvoir ajouté des feuilles les une après les autres, (test de charge) et en utilisant une feuille de référence (feuil1) qui est la structure de base.

Cependant les onglets doivent se nommer SV & "_" & Fw (correspondant à une version de server et un firmware de caméra).

Bref voici ce que j'utilise : Cela ne m'ajoute pas une copie de la feuille, mais remplace celle existante au bout du 2ème test: HELP !

Le problème doit surement venir de la ligne en gras mais je ne sais comment la résoudre.

'-----------------------Lancement du premier test---------------------------

'Si le répertoire n'existe pas alors
If (Dir(sPath & "Resultats\" & Newrep, vbDirectory)) = "" Then
MsgBox ("Le repertoire n'existe pas")

'Crée un repertoire en fonction de Reso1 - Reso2 - Processeur
MkDir (sPath & "Resultats\" & Newrep)

'Copie la feuille active en dernière position
ActiveWorkbook.ActiveSheet.Copy After:=Worksheets(Sheets.Count)

'La feuille prend le nom de la version du server et du firmware de la caméra
ActiveSheet.Name = SV & "_" & Fw

Else

'---------Lancement du 2ème test avec argument "SV ou FW" différents -----------

'Si non si le répertoire existe déjà alors
If (Dir(sPath & "Resultats\" & Newrep, vbDirectory)) = Newrep Then
MsgBox ("Le repertoire existe déjà")

'Ajout un onglet au classeur existant
ActiveWorkbook.ActiveSheet.Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = SV & "_" & Fw
End If
End If


Cordialement
A voir également:

4 réponses

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
23 oct. 2015 à 17:18
Bonjour,

le code ne peut pas remplacer un onglet par un autre, mais remplacer le nom de l'onglet actif si vous avez un on error resume next et une erreur programme
0
nauzia45 Messages postés 339 Date d'inscription samedi 16 février 2013 Statut Membre Dernière intervention 24 décembre 2020 23
23 oct. 2015 à 17:30
Bonjour,

Je ne suis pas sûr d'avoir tout compris; pourquoi ne pas passer par:

- clic droit sur l'onglet
- "déplacer ou copier"
- ne pas oublier de cocher "faire une copie"

puis corriger le nom de l'onglet de la "copie"

A +
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
23 oct. 2015 à 17:32
Bonjour,

Je suppose que ce code fait partie d'une boucle qui doit scanner des servers sur un reseau, donc VBA pour automatiser
0
bonjour, nauzia45

Comment puis-je faire pour ajouté des feuilles les une après les autres ?
les feuilles s'appelleront 4.5.1 - 4.5.2 - 4.5.3 ect..
0
Bonjour, en faite c'est un projet d'automatisation de test logiciels serveur.
Ou je récupère des valeurs (CPU, RAM...) et je les affiches dans un classeur excel à des cellules precise.

MON PB :
J'aimerais pouvoir à chaque fois que je lance un test cela m'ajoute une feuille qui sera nommer 4.5.1 - 4.5.2 - 4.5.3.. ect (variable SV).

Contrainte : La feuille(SV) ne sera pas vide mais part d'une feuille de base.
0
Je sais que le problème vient d'ici mais je n'y arrive pas :

If Test = "AVC-S" Or Test = "S-V" Or Test = "S-E" Or Test = "S-V-E" Or Test = "SV" Or Test = "SE" Then

'Crée un repertoire en fonction des arguments Reso1 - Reso2 - Proc
If (Dir(sPath & "Resultats\" & monrepertoire, vbDirectory)) = "" Then
'MsgBox "Le repertoire n'existe pas, création"
MkDir (sPath & "Resultats\" & monrepertoire)
ActiveSheet.Name = SV
Else

'MsgBox "Le repertoire existe déjà"
For Cpt = 1 To 1
With Workbooks(Source & BaseV2_1.xlsm).Sheets(1) #error : objet requis...
.Copy After:=Worksheets(Worksheets.Count)
End With
'Le nouvelle onglet prend le nom de la version du server
ActiveSheet.Name = SV
Next Cpt
End If
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
Modifié par eriiic le 29/10/2015 à 19:27
Bonjour,

A part que activesheet n'est pas toujours la bonne je ne vois pas pourquoi ta feuille ne s'ajoute pas.
Presque pareil :
    Sheets("Feuil1").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = SV & "_" & Fw
eric

PS : ton fichier est bien ouvert ?
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
Ok merci à tous !

Problème casiment résolu :

Sheets(1).Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = SV & "_" & Fw
0