Création
d'entreprise
Posez votre question Signaler

VBA Comment créer plusieurs feuilles Excel

choupy51 3Messages postés 29 octobre 2010Date d'inscription 3 novembre 2010Dernière intervention - Dernière réponse le 2 nov. 2010 à 16:06
Bonjour,
Malheureusement je connais très mal les macros mais peut-être pourriez-vous me venir en aide.
Voilà...j'ai un classeur Excel qui comprend 4 feuilles différentes.
Une des feuilles est une feuille source qui comprend X lignes et X colonnes.
J'ai créer une feuille "fiche contact" qui reprend des informations de la feuille source et qui se modifie à chaque fois que je change la donnée de la cellule B3 de cette "fiche contact".
Ce que je souhaite c'est :
- pouvoir créer autant de copie de la feuille "fiche contact" que la feuille source comprend en lignes
- pouvoir insérer automatiquement dans chaque cellule B3 de chaque "fiche contact" une information de la colonne A de la feuille source
- renommer chaque feuille par le nom obtenu dans chaque cellule B3
Ex : Feuille source = 10 lignes, colonne A = code postal
Il me faudrait donc 10 copies de la "fiche contact". Sur chacune de ces fiches, dans la cellule B3 doit se trouver un code postal différent.
Chaque fiche doit être renommer du code postal.
Auriez-vous des idées à me soumettre????
Merci de votre aide
Lire la suite 

VBA Comment créer plusieurs feuilles Excel »

5 réponses
Réponse
+1
moins plus
Bonjour à tous,

ta liste commence en A2 et peut aller jusqu'à 99 codes
essaies:

Sub creeretnommer()
Dim encours As Long, derlig As Byte

derlig = Sheets(1).Range("A150").End(xlUp).Row
Application.ScreenUpdating = False
For cptr = 1 To derlig
    encours = Sheets(1).Cells(cptr+1, 1)
    Sheets.Add after:=Sheets(cptr)
    With ActiveSheet
        .Name = Format(encours, "00000")
        With .Range("B3")
            .Value = encours
            .NumberFormat = "00000"
        End With
    End With
 Next
End Sub
michel_m- 31 oct. 2010 à 18:40
Merci pour le coucou de remerciement....
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je ne pourrait pas te donner le code déjà tous fais mais j'ai ça :
ftp://ftp2.developpez.be/developps/vb/VB-excel2.pdf
Un très bon tutoriel!! Tu y trouvera notamment des informations utiles sur :
Comment travailler sur la cellule : PLAGE ET CELLULE (RANGE)
Et comment maitriser la création de nouveau fichier : L'objet WorkBook (classeur)

En espérant t'avoir aidé!!

Edit : Pour les feuilles de calcule voir : Worksheet
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour Oo°Evan°oO & michel_m

Merci pour vos informations.
De mon côté, ce wk j'ai pu approfondir mes recherches et je suis arrivée au code suivant :

Sub Copie_Modele()
Dim code_dpt As Variant
Dim maliste As Range
Dim compteur As Variant
Set maliste = Sheets("Clients").Range("A2:A180")
For Each code_client In maliste
Sheets("Fiche contact").Copy , before:=Sheets("Fiche contact")
ActiveSheet.Name = code_dpt.Value
Range("B3").Select
ActiveCell.FormulaR1C1 = code_dpt.Value
Range("G59").Select
ActiveCell.FormulaR1C1 = compteur + 1
compteur = compteur + 1
Next
End Sub

Je pense que cela doit être un peu du "bricolage" vu mon niveau mais "ça fonctionne" sauf que....

Comment peut-on faire pour copier les cellules non-vides de la colonne A de ma feuille "Clients"?????

Comme le fichier sera mis à jour assez régulièrement il va y avoir des rajouts/des suppressions et je me dis que la solution la plus simple serait d'utiliser toutes les cellules non-vides de la colonne A.

Est-ce que mon raisonnement vous semble correct????

Merci pour vos remarques/suggestions
Ajouter un commentaire
Réponse
+0
moins plus
je suis en formation pendant 15 jours
Ajouter un commentaire
Ce document intitulé « VBA Comment créer plusieurs feuilles Excel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?