[Catégorie modifiée .Net --> VBA] Boucle + Création fichier .xls

Résolu
Matmouss Messages postés 9 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 22 octobre 2010 - 21 oct. 2010 à 10:24
Matmouss Messages postés 9 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 22 octobre 2010 - 21 oct. 2010 à 12:22
Bonjour,

je suis débutant en VBA et j'ai réalisé une macro permettant de générer des onglets (que je renomme) selon la ligne choisie (cf à la fin).

Par contre:

1/ je n'arrive pas à ré-entrer dans la boucle lorsque la réponse est "oui" à la fin

2/ j'aimerais créer des fichiers .xls (les enregistrer et les fermer) au lieu des onglets.

Est-ce possible? Pouvez-vous m'aider?

je vous remercie,

Mathieu

Sub CréationContratSélectionné()

' CréationContrat Macro
'
' Touche de raccourci du clavier: Ctrl+a


Dim Condition As String
Dim ContratSelect As Integer

Condition = "oui"

Do While Condition = "oui"

ContratSelect = Val(InputBox("Quel contrat souhaitez-vous générer? (indiquez le N° de contrat - Ex: 3) ")) + 4

Sheets("V 14 oct").Select
Sheets("V 14 oct").Copy After:=Sheets(2)
Sheets("V 14 oct (2)").Select
ActiveSheet.Name = Range("'Unité PILOTE'!C" & ContratSelect).Text
Range("E5:J5").Select
ActiveCell = "='Unité PILOTE'!B" & ContratSelect
Range("E6:J6").Select
ActiveCell = "='Unité PILOTE'!C" & ContratSelect
Range("E8:J8").Select
ActiveCell = "='Unité PILOTE'!D" & ContratSelect
Range("L5").Select
ActiveCell = "='Unité PILOTE'!E" & ContratSelect
Range("L6").Select
ActiveCell = "='Unité PILOTE'!F" & ContratSelect
Range("L7").Select
ActiveCell = "='Unité PILOTE'!G" & ContratSelect
Range("E10:J10").Select
ActiveCell = "='Unité PILOTE'!S" & ContratSelect
Range("E11:J11").Select
ActiveCell = "='Unité PILOTE'!H" & ContratSelect
Range("E23:G13").Select
ActiveCell = "='Unité PILOTE'!I" & ContratSelect
Range("E23").Select
ActiveCell = "='Unité PILOTE'!O" & ContratSelect
Range("F23").Select
ActiveCell = "='Unité PILOTE'!P" & ContratSelect
Range("H23").Select
ActiveCell = "='Unité PILOTE'!Q" & ContratSelect
Range("J23:K23").Select
ActiveCell = "='Unité PILOTE'!R" & ContratSelect

Condition = Val(InputBox("Souhaitez-vous générer un autre contrat? (oui ou non)"))

Loop

End Sub

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
21 oct. 2010 à 11:54
Bonjour,
[b]
Si je peux me permettre.. penses bien à utiliser les balises de CODE pour copier tes macros sur le forum./b

Ensuite;.

Pour ta boucle : C'est ton "VAL" qui pose problème.
Ecris plutot :
Condition = InputBox("Souhaitez-vous générer un autre contrat? (oui ou non)")


Pour ce qui est de créer un nouveau classeur, tu peux le faire directement lorsque tu dupliques ta feuilles par exemple :

Sub Creer_Classeur()

    ' Copie de la feuille dans un nouveau classeur
    Sheets("Feuil1").Select
    Sheets("Feuil1").Copy
        
    'Sauvegarde du nouveau classeur
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\jordane\Bureau\Nouveau_classeur.xls", FileFormat _
        :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
        False, CreateBackup:=False
    
    ' fermeture du classeur
    ActiveWorkbook.Close
End Sub



Tu peux aussi t'orienter vers l'instruction :
'Création d'un nouveau classeur
workbooks.Add




Cordialement,
Jordane,

[b]PS : Si la réponse vous contient.. pensez à la placer en RESOLU.
Merci./b

______________________________________________________
Règles du forum à lire avant de poster une question : ICI
3
Matmouss Messages postés 9 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 22 octobre 2010
21 oct. 2010 à 12:22
Un grand merci, j'ai bien réussi à créer un nouveau fichier avec l'onglet que je veux en copie.
0
Rejoignez-nous