Besoin d'aide... première macro, ajout de feuilles au classeur.

  • Initiateur de la discussion Initiateur de la discussion Ostarel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ostarel

XLDnaute Nouveau
Bonjour à tous

voilà je ne sais pas (encore! 😉) utiliser les macro excell, et je fais donc appel à vous pour m'aider.

Je vous présente mon besoin :

Je souhaite créer un tableau qui servirait en qque sorte de ligne éditoriale pour une revue associative.
Le principe serait d'avoir une page récapitulative (sorte de table des matière) puis une page par article.
Chaque page d'article servirait aux utilisateurs à lister les sources utilisées pour chaque article, lister les questions prévues pour les interviews etc...

Je souhaiterais faire sur la première page un bouton "Ajouter un article" qui me crérais une nouvelle feuille en fin de classeur "ArticleX" qui serait crée à partir d'un modèle de base d'article.

Et je souhaiterais aussi (si c'est possible) que ce même bouton ajoute une ligne à ma table de matière avec ArticleX et la valeur du titre de l'article rentrée dans la case à cet effet sur la page Article.

Voilà n'ayant jamais fait de macros j'ai donc besoin de votre aide car je ne sais pas du tout comment m'y prendre pour réaliser ceci!

Merci d'avance
 
Re : Besoin d'aide... première macro, ajout de feuilles au classeur.

Bonsoir

Essaies avec ceci
Code:
Sub Ajout_article()
Dim derlig&
With Worksheets("Table des matières")
derlig = .Range("A65536").End(xlUp).Row
NOMF = .Cells(derlig, "A")
TITRE = .Cells(derlig, "B")
End With
If Not SheetExists(NOMF) Then
Sheets("Trame article").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = NOMF
ActiveSheet.Range("A1") = TITRE
Else
MsgBox "Cette feuille existe déjà"
End If
End Sub
Code:
Private Function SheetExists(sname) As Boolean 'jw
'   Returns TRUE if sheet exists in the active workbook
    Dim x As Object
    On Error Resume Next
    Set x = ActiveWorkbook.Sheets(sname)
    If Err = 0 Then SheetExists = True _
        Else SheetExists = False
End Function
 
Re : Besoin d'aide... première macro, ajout de feuilles au classeur.

Houla je comprend pas grand chose 😕, j'ai testé mais ca me fait a chaque fois "Cette feuille existe déjà" alors que ma petite fonction de base me créé bien une nouvelle page
Code:
Sub Ajout_article()

Sheets("Table des matières").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = ArticleX

End Sub

Le soucis c'est que je ne sais pas comment gerer le X du nom de la page. Ex si j'ai déjà les pages Article1 et Article2 j'aimerai créer la page Article3... (logique! 😉 )

Autre point pas encore pris en charge c'est l'ajout d'une ligne Article3 dans ma table des matières.

Désolée je suis complètement novice... 😱
 
Re : Besoin d'aide... première macro, ajout de feuilles au classeur.

Re

Cela fonctionne si tu saisis un nom d'article (en colonne A) et un titre (en colonne B) dans la feuille Table des matières avant de lancer la macro 😉
Cliques sur l'image ci-dessous pour mieux comprendre.
copief.jpg
 
Dernière édition:
Re : Besoin d'aide... première macro, ajout de feuilles au classeur.

Ah ok j'avais pas compris qu'il fallait remplir la table des matières avant!😱

Comment je fais si je désire copier qu'une partie de la page "Trame article" pour ne pas copier les indications d'utilisation que je veux y faire figurer?😕


Merci pour ton aide je vais avancer avec ça! 😎
 
Re : Besoin d'aide... première macro, ajout de feuilles au classeur.

Bonjour

Si j'ai bien compris
Code:
Sub Ajout_article() ' maj: 7/11/12
Dim derlig&
With Worksheets("Table des matières")
derlig = .Range("A65536").End(xlUp).Row
NOMF = .Cells(derlig, "A"): TITRE = .Cells(derlig, "B")
End With
If Not SheetExists(NOMF) Then
Sheets("Trame article").Copy after:=Sheets(Sheets.Count)
With ActiveSheet
    .Name = NOMF
    .Range("A1") = TITRE
    .Rows("28:" & Rows.Count).ClearContents
End With
Else
MsgBox "Cette feuille existe déjà"
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
977
  • Question Question
Microsoft 365 Suite de macro
Réponses
0
Affichages
569
Retour