Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 25/08/2008, 23h04   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: juillet 2008
Messages: 34
Par défaut utilisation Items Combobox

Bonjour à tous,

J'ai un combobox sur un userform avec 16 items. chaque item correspond au nom d'une feuille dans thisworkbook.
J'aimerai que lorqu'un item est choisi qu'un nouveau classeur s'ouvre et que l'on copie toute la feuille(comboBox.text) de thisworkbook dans une nouvelle feuille(ComboBox.text) du nouveau classeur.
J'ai écris le code suivant mais à chque item choisi un nouveau classeur s'ouvre.

Code :
 
Private Sub ComboBox1_Change()
 
    Dim NewSheet As Variant
    
    ThisWorkbook.Worksheets(ComboBox1.Text).UsedRange.Copy
    
    Set NewSheet = Workbooks.Add
        NewSheet.ActiveSheet.Paste
        ActiveSheet.Name = ComboBox1
        [A1].Select
    
     
End Sub
 

Merci pour votre aide
bmeda72 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 23h48   #2 (permalink)
Rédacteur/Modérateur
 
Avatar de fring
 
Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 667
Par défaut

Bonjour,

Tu peux essayer comme ceci :
Code :
'variables à déclarer en tête des procédures
Dim NbrFeuil As Byte
Dim WbNew As Workbook, WbOri As Workbook
Code :
Private Sub ComboBox1_Change()
 
NbrFeuil = NbrFeuil + 1
 
If NbrFeuil = 1 Then
    'si c'est la première sélection on crée un nouveau classeur avec la feuille sélectionnée
    Set WbOri = ThisWorkbook
    Sheets(Me.ComboBox1.Text).Copy
    Set WbNew = ActiveWorkbook
Else
    'sinon on ajoute les feuilles sélectionnées au classeur créé
    WbOri.Sheets(Me.ComboBox1.Text).Copy After:=WbNew.Sheets(Sheets.Count)
End If
 
End Sub
Et dans le bouton qui ferme ton UserForm
Code :
Private Sub CommandButton1_Click()
    Unload Me
    NbrFeuil = 0 '<-- remet le compteur à 0 pour la création d'un nouveau classeur lors de la prochaine utilisation
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/08/2008, 15h00   #3 (permalink)
Futur Membre du Club
 
Date d'inscription: juillet 2008
Messages: 34
Par défaut

Merci Fring,

J'ai essayé le code mais il bloc sur la ligne - Sheets(Me.ComboBox1.Text).Copy - avec cette erreur " La methode copie de la classe worksheet a éhoué.

Comment faire
bmeda72 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h51.


Publiez vos articles, tutoriels et cours et rejoignez-nous dan