Mettre à jour des feuilles Excel sans les classer à nouveau

ramo1985 Messages postés 13 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
bonjour
on m a aidé a élaborer ce travail sur ce forum sauf que on faisant entrer d'autre élément dans le tableau et on appuis sur le bouton d'autre feuilles sont crées au lieu de mettre a jour le tous et ajouter les nouvelles feuilles uniquement

merci pour l’intérêt que vous allez accorder a mon problème

https://cjoint.com/c/ILClNObo1eG

3 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Pour créer les feuilles ajoutées
    https://cjoint.com/c/ILCnMLMRjzB

    Cdlmnt
    1
  2. ramo1985 Messages postés 13 Statut Membre
     
    merci
    sauf que c est exactement ce que je vx éviter je veux en remplissant d autre lignes dans la feuille liste ou que je modifie des truc en appuyant sur le bouton les feuilles déjà crées se mettent a jour et les nouvelles s’édite
    j'ai un exemple déjà fait mais je n'arrive pas a l'adapter a mon fichier voila son liens
    https://cjoint.com/c/ILCqrrTWkyG
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 731
     
    Bonjour,

    Pour faire ce que tu veux il faut supprimer les feuilles et ensuite les recréer . Voir ceci pour faire une boucle sur toutes les feuilles:

    https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/#LI

    et cela pour supprimer les feuilles:

    https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/#LII-A-10

    Ce qui donne:

    'Déclare la variable objet Worksheet
    Dim Ws As Worksheet
    'DisplayAlerts = False permet de ne pas afficher le message d'alerte qui survient
    'lorsque l'on supprime un onglet.
    Application.DisplayAlerts = False
    'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
    'en compte.
    'ThisWorkbook correspond à l'objet classeur contenant la macro
    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Name <> "Feuil1" Then 'adapter le nom de feuille a ne pas supprimer
    Ws.Delete
    End If
    Next Ws
    'Ne pas oublier de réinitialiser DisplayAlerts à True
    Application.DisplayAlerts = True
    


    ensuite tu mets ta macro pur créer tes feuilles

    voilà c'est tout simple

    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 731
       
      et pour ton cas:

      Sub toto()
      'Déclare la variable objet Worksheet
      Dim Ws As Worksheet
      'DisplayAlerts = False permet de ne pas afficher le message d'alerte qui survient
      'lorsque l'on supprime un onglet.
      Application.DisplayAlerts = False
      'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
      'en compte.
      'ThisWorkbook correspond à l'objet classeur contenant la macro
      For Each Ws In ThisWorkbook.Worksheets
          If Ws.Name <> "Base" And Ws.Name <> "Releve" Then  'adapter le nom de feuille a ne pas supprimer
      Ws.Delete
      End If
      Next Ws
      'Ne pas oublier de réinitialiser DisplayAlerts à True
      Application.DisplayAlerts = True
      '  ***  10 Ventôse CCXIX  ***  Roger fecit.  ***
      '
      'Référence à la biliothèque Microsoft Scripting Runtime (scrrun.dll) requise.
      '"dat" est une plage nommée de la feuille "Base" :
      '=DECALER(Base!$A$1;;;MAX((DECALER(Base!$A$1;;;NEnr;1)<>"")*LIGNE(DECALER(Base!$1:$1;;;NEnr;)));MAX((DECALER(Base!$A$1;;;;NChp)<>"")*COLONNE(DECALER(Base!$A:$A;;;;NChp))))
      'Adapter les paramètres nommé "NEnr" (nb. max d'enregistrements) et "NChp" (nb. max de champs) si besoin est.
      'la suite de ton code
      


      Voilà
      0