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

Messages postés
9
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
22 octobre 2010
- - Dernière réponse : 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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
26537
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2019
316
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
9
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
22 octobre 2010
0
Merci
Un grand merci, j'ai bien réussi à créer un nouveau fichier avec l'onglet que je veux en copie.
Commenter la réponse de Matmouss