Probleme macro création d'onglet

  • Initiateur de la discussion Initiateur de la discussion phil87
  • 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 !

phil87

XLDnaute Occasionnel
Bonjour le forum

J'ai récupéré une macro sur le fil mais je n'arrive pas à la faire évoluer et même marcher!!!

Je voudrai en appuyant sur le bouton "Archivage"
-Créer un nouvel onglet au nom de la cellule B2
-Copier le contenu de cet onglet "Envoi" dedans.

Et biensur, si la date change en B2, alors création de nouvel onglet.

Merci de votre aide en attendant
 

Pièces jointes

Re : Probleme macro création d'onglet

Bonsoir le fil, phil87

Tu peux écrire la Sub a(), comme ceci :
Code:
Sub a()
 
    Sheets.Add after:=Sheets(Sheets.Count)
    Feuil2.Copy ActiveSheet
    ActiveSheet.Name = Format(Feuil2.[B2], "mmmm yyyy")
 
End Sub
Ca ne vérifie pas que la feuille existe déjà (et ça copie aussi le bouton de commande), mais vois ce que tu peux faire avec.

...Si ça ne va toujours pas, dis nous.

A plus
 
Dernière édition:
Re : Probleme macro création d'onglet

Salut, pour l'existence de la feuille ajouter qqch comme ceci au code de Soenda
Code:
Option Explicit

Sub Tst()
Dim sNomFeuille As String
    sNomFeuille=.....
    If ExistenceFeuille(sNomFeuille) = False Then
        '.....
    End If
End Sub

Private Function ExistenceFeuille(ByVal sNom As String) As Boolean
    On Error Resume Next
    ExistenceFeuille = Sheets(sNom).Name <> ""
    Err.Clear
End Function
 
Dernière édition:
Re : Probleme macro création d'onglet

Bonjour kiki29

Je ne suis pas très au point en code et je ne sais pas trop où mettre ta proposition, car elle me met des erreurs en rouge :
sNomFeuille=.....

Peux tu m'inscrire ton code où il faut afin qu'il fonction dans le fichier joint?

Merci par avance
 

Pièces jointes

Re : Probleme macro création d'onglet

Bonsior le fil, phil87, kiki29

Après avoir vérifié, il semblerait que l'on soit obligé de spécifier les plages.
De plus, puisque tu utilises une feuille cachée, on peut charger les noms de feuille dans une colonne inutilisée (ex: [ZZ]).
Code:
Sub a()
    Dim ch As String
    ch = Format(Feuil2.[B2], "mmmm yyyy")
 
    [COLOR=green]' si la feuille existe dans la base de données, on[/COLOR] [COLOR=green]sort[/COLOR]
    If WorksheetFunction.CountIf(Sheets("Données").[B][COLOR=teal][ZZ:ZZ][/COLOR][/B], ch) Then Exit Sub
 
    Sheets.Add after:=Sheets(Sheets.Count)
    Feuil2.[COLOR=blue][A:AM][/COLOR].Copy ActiveSheet.[COLOR=blue][A:AM][/COLOR]
    ActiveSheet.Name = ch
 
    [COLOR=green]' On ajoute le nom de la feuille nouvellement créée dans la base[/COLOR]
    Sheets("Données").[[B][COLOR=teal]ZZ[/COLOR][/B]65536].End(xlUp).Offset(1) = ch
End Sub
Ca vérifie bien si la feuille existe, ça ne crée qu'une seule feuille, mais c'est une solution "peu ortodhoxe".
Je la préfère quant même à l'effacement de la feuille surnuméraire...

A plus
 
Dernière édition:
Re : Probleme macro création d'onglet

Bonjour le fil et soenda

Merci pour ton code, mais il y a 1 petite erreur:

Lors des créations de nouvelle feuille,(avec le code) celles "en archive", gardent bien leur nom (impec!!), mais le contenu des feuilles est celui de la derniere feuille enregistrée!!!

Merci encore
@+
 

Pièces jointes

Re : Probleme macro création d'onglet

Re,

phil87 à dit:
...le contenu des feuilles est celui de la derniere feuille enregistrée!
Oups ! On copiait des formules ...

Remplace la ligne ci-dessous :
Code:
Feuil2.[A:AM].Copy ActiveSheet.[A:AM]
Par celles-ci (copie des valeurs et des formats, mais pas les formules)
Code:
    Feuil2.[A:AM].Copy
    With ActiveSheet.[A:AM]
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteFormats
    End With
A plus
 
Re : Probleme macro création d'onglet

Bonjour le forum

Je reviens à vous car j'ai quelques soucis de transformation sur une ligne (9 notemment de la feuille "envoi").
Je n'arrive pas à voir d'où vient le souci!
Toutes les autres lignes fonctionnent pour la recopie sauf la ligne 9.
Est ce un problème de VBA ou autre chose??????

merci par avance
 

Pièces jointes

Re : Probleme macro création d'onglet

Bonjour le fil et soenda

"Ici, tu dois ajouter la destination"

Peux tu être plus explicite car je suis vraiment très mauvais en VBA?!
Peux tu m'écrire la procédure?
Et pourquoi les reste des lignes fonctionne? il n'y a que cette ligne qui ne fonctionne pas!!

Merci encore
 
Re : Probleme macro création d'onglet

Re,

phil87 à dit:
Sheets("Données").Range("B5").Copy "Ici, tu dois ajouter la destination"
Peux-tu être plus explicite (...) ?
Dis-moi à quel endroit, tu veux copier le contenu de la cellule B5 de la feuille "Données", et je pourrai compléter la ligne.

Je n'ai pas regardé les autres lignes.

A plus
 
Dernière édition:
Re : Probleme macro création d'onglet

Re,

Je veux que dans le tableau de la "feuil1", differentes anotations se transforment dans le tableau de la feuille "Envoi", comme indiqué dans la feuille masquée "données". Et cela sur toutes les lignes!!
Exemples :
feuil1 Envoi
A G
Aj J
An N
C G
 
- 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
5
Affichages
550
  • Question Question
Microsoft 365 Macro VBA - Excel
Réponses
12
Affichages
799
Réponses
10
Affichages
642
Retour