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... :rolleyes:

soan
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

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
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() ! :oops: 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 ! :oops: 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

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO