Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Formule non compatible Excel2010

PORCHER

XLDnaute Occasionnel
Bonjour,
Ci-dessous une formule création d'une nouvelle feuille suivant un modèle.
Fonctionne très bien sur Microsoft 365 mais ne fonctionne pas sur Excel2010, pourquoi ?
VB:
Sub Cmd_AjoFrm_Click()
    
    ' Mettre un message d'erreur si tous les champs ne sont pas remplis
If Txt_AjoFeuil.Value = "" Then
    zv_Msg = MsgBox("Veuillez renseigner le Nom de la Nouvelle feuille... (ces données sont indispensables au fonctionnement du logiciel).", 48, "Erreur")
    Exit Sub
End If

   Worksheets("Modèle").Visible = True
        Sheets("Modèle").Copy After:=Sheets(Sheets.Count) 'nouvelle feuille
        nomcomptecree = Txt_AjoFeuil.Value
        ActiveSheet.Name = Txt_AjoFeuil.Value
        Worksheets("Modèle").Visible = False
        Unload UserForm1
    
End Sub
Pourriez-vous m'aider. Merci
 

patricktoulon

XLDnaute Barbatruc
bonjour
@PORCHER c'est quoi le message d'erreur?
en attendant teste ceci
VB:
Sub Cmd_AjoFrm_Click()

' Mettre un message d'erreur si tous les champs ne sont pas remplis
    If Txt_AjoFeuil.Value = "" Then
        MsgBox("Veuillez renseigner le Nom de la Nouvelle feuille... (ces données sont indispensables au fonctionnement du logiciel).", 48, "Erreur")
        Exit Sub
    End If

    With Worksheets("Modèle")
        .Visible = True
        .Copy After:=Sheets(Sheets.Count)    'nouvelle feuille
         Sheets(Sheets.Count).Name = Txt_AjoFeuil.Value
        .Visible = False
    End With
    Unload UserForm1

End Sub
 

soan

XLDnaute Barbatruc
Inactif
Bonjour PORCHER, Patrick,

un essai :

VB:
Option Explicit

Dim nomcomptecree$

Sub Cmd_AjoFrm_Click()
  'Mettre un message d'erreur si le champ du Nom de la Feuille n'est pas rempli
  If Txt_AjoFeuil = "" Then
    MsgBox "Veuillez renseigner le Nom de la Nouvelle feuille... (cette donnée " _
      & "est indispensable au fonctionnement du logiciel).", 48, "Erreur"
    Exit Sub
  End If
  Dim n%: Worksheets("Modèle").Visible = True: n = Worksheets.Count
  Worksheets("Modèle").Copy , Worksheets(n) 'nouvelle feuille
  nomcomptecree = Txt_AjoFeuil: ActiveSheet.Name = nomcomptecree
  Worksheets("Modèle").Visible = False: Unload Me
End Sub

mais sans fichier, c'est pas trop évident...

soan
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Ceci n'est pas une "formule", mais une "macro".

Je n'ai pas de message d'erreur, quand je clic sur le bouton pour appeler mon userform il ne s'affiche pas, rien ?
Perso, je ne vois pas dans ta macro d'instruction demandant d'afficher un UserForm.
Ceci dit, vu ma maîtrise plus que relative du VBA... je peux me tromper.


[edit]
Ou alors c'est la MessageBox que tu appelles "UserForm" et dans ce cas si elle ne s'affiche pas c'est que la condition régissant l'affichage n'est pas vérifiée.

Mais je vois qu'il y a déjà du monde pour t'aider. @+
[/edit]
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Marcel, le fil,

tu as écrit : « Ceci n'est pas une "formule", mais une "macro". »

c'est vrai, mais ça arrive assez souvent quand le demandeur ne sait pas bien ce qu'est le VBA : il croit que c'est comme au restaurant, quand tu commandes la formule du Chef ! voici une info pour ceux qui débutent : VBA est un langage de programmation, ce n'est pas le menu ! (même si vous avez faim ! )

soan
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir PORCHER, le fil,

ton fichier en retour.

clique sur le bouton "Nouvelle feuille..." ➯ affichage du formulaire UserForm1,
dont le titre de la fenêtre est : "Création Nouvelle Feuille".

je te laisse faire les tests, puis relis tout le code VBA,
car j'ai fait des modifs presque partout !



edit : désolé, j'me suis complètement trompé pour ma sub Cmd_AjoFrm_Click() ! j'ai donc refait entièrement le code VBA de cette sub ; le nouveau fichier est dans mon post #12 ; cette fois, j'ai bien testé ma nouvelle sub : c'est sûr que c'est OK ! (bien sûr, j'ai supprimé le fichier de ce post vu qu'il est erroné)

soan
 
Dernière édition:

PORCHER

XLDnaute Occasionnel
Bonjour soan et Merci d'avoir consacré beaucoup de temps à ce projet, en effet j'ai remarqué plusieurs correction et je t'en remercie, c'est plus clair sauf petit bémol j'ai une erreur qui s'affiche ;
J'ai tenté de créer une feuille et j'ai un message - cette feuille existe déjà - j'ai donc essayé un autre non, c'est pareil. A tu la réponse et merci encore.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour PORCHER, youky,

tu as écrit : « j'ai une erreur qui s'affiche ; j'ai un message : cette feuille existe déjà »

désolé, c'est ma faute ! en relisant attentivement le code VBA de ma sub Cmd_AjoFrm_Click(), je m'suis rendu compte que j'me suis complètement trompé ! (y compris en inversant les 2 conséquences du test ! ) ; voici la nouvelle sub, que cette fois j'ai bien testée ; tu pourras voir que maint'nant c'est ok !

exemples : clique sur le bouton "Nouvelle feuille..." et saisis "Planning" ; clique sur "Valider" ➯ Erreur : "La feuille Planning existe déjà !" ; clique sur "OK" ; remplace "Planning" par "Modèle" ; clique sur "Valider" ➯ Erreur : "La feuille Modèle existe déjà !" (eh oui, même si elle est cachée ! ) ; clique sur "OK" ; remplace "Modèle" par "Juin" ; clique sur "OK" ➯ la feuille "Modèle" a été copiée, puis renommée en "Juin".​

VB:
Sub Cmd_AjoFrm_Click()
  On Error GoTo FeuilInexistante
  'Mettre un message d'erreur si le champ du Nom de la Feuille n'est pas rempli
  If Txt_AjoFeuil = "" Then
    MsgBox "Veuillez renseigner le Nom de la Nouvelle feuille... (cette donnée " _
      & "est indispensable au fonctionnement du logiciel).", 48, "Erreur"
    Exit Sub
  End If
  Dim sh As Worksheet, n%: Set sh = Worksheets(Txt_AjoFeuil.Value)
  MsgBox "La feuille " & Txt_AjoFeuil & " existe déjà !", 48, "Erreur": Exit Sub
FeuilInexistante:
  Application.ScreenUpdating = 0
  With Worksheets("Modèle")
    .Visible = -1: n = Worksheets.Count: .Copy , Worksheets(n)
    ActiveSheet.Name = Txt_AjoFeuil: .Visible = 0: Unload Me
  End With
End Sub

soan
 

Pièces jointes

  • planning.xlsm
    60.3 KB · Affichages: 3
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…