Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2940 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  dupliquer une feuille de mon classeur chaque mois

 

Sujet(s) à lire :
    - Visual C++
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

dupliquer une feuille de mon classeur chaque mois

n°2327804
bodiallo
Personne en meilleure dévenir
Posté le 17-01-2019 à 18:42:36  profilanswer
 

bonjour  
 
je me suis inspiré de certain code et voici mon code

Code :
  1. Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
  2. 'fonction qui vérifie si la "FeuilleActive" existe dans le Classeur actif
  3. On Error GoTo SiErreur
  4. Dim Feuille As Worksheet
  5. Dim SheetName As String
  6.    
  7.     SheetName = ActiveWorkbook.ActiveSheet.Name
  8.     FeuilleExiste = False
  9.     For Each Feuille In Worksheets
  10.         If Feuille.Name = SheetName Then
  11.             FeuilleExiste = True
  12.             Exit Function
  13.         End If
  14.     Next Feuille
  15. Exit Function
  16. SiErreur:
  17. MsgBox "Une erreur s'est produite..."
  18. FeuilleExiste = CVErr(xlErrNA)
  19. End Function
  20. Sub Test()
  21. 'Utilisation de la fonction "FeuilleExiste" puis ajout d'une nouvelle feuille
  22. Dim SheetName As String
  23. Dim i As Integer
  24.    
  25.     SheetName = ActiveWorkbook.ActiveSheet.Name
  26.     If FeuilleExiste(SheetName) = True Then
  27.         'MsgBox "La Feuille " & SheetName & " existe !"
  28.        
  29. 'ajoute uen Feuille tout à la fin du Classeur en comptant les Feuilles avec la méthode Worksheets.Count et la nommée
  30.         'Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = Format(Date - 2, "mmmm" ) & "-" & Format(Date, "yy" ) & "_KPI "
  31.         Sheets(SheetName).Copy After:=Sheets(Sheets.Count)
  32.         ActiveSheet.Name = Format(Date + 14, "mmmm" ) & "-" & Format(Date, "yy" ) & "_KPI "
  33.        
  34.         'entre la date du 1er jour du mois en cours dans la cellule C3
  35.        
  36.         ActiveSheet.Range("C3" ) = DateSerial(Year(Date), Month(Date) + 1, 1)
  37.        
  38.         'recuperation du numéro de colonne de la cellule contenant la date du dernier jour du mois en cours     numérodecolonnedelacelluleactive  ActiveCell.column
  39.         'DerniereColonneUtilisee = Cells(3, Columns.Count).End(xlToLeft).Column 'où 3 est le numéro de la ligne
  40.        
  41.         For Each cell In ActiveSheet.Range("C3:AG3" )
  42.             If Month(cell.Value) <> Month(ActiveSheet.Range("C3" )) Then
  43.                    i = cell.Column
  44.                    Columns(Val(i)).Delete Shift:=xlToLeft
  45.             End If
  46.         Next
  47.        
  48.     Else
  49.         MsgBox "La Feuille 'Test_1' n'existe pas!"
  50.     End If
  51.    
  52. End Sub


 
ce code vérifit si la feuillet à dupliquer existe, si vrai duplique la feuille dans le même classeur. j'insere dans la cellule C3 la date du mois précedent et jusque là il n'y a pas de problème. vue que le nombre de jour de chaque mois varie, je parcours la ligne de ma nouvelle feuille en vérifiant si le mois de cellule C3 et identique aux autres cellules sinon supprime la colonne contenant le mois différent du mois de C3. c'est là que commence mes difficultés, il me supprime ces colonnes sur la feuille original. et depuis je ne parviens pas à cela.
je demande votre apport pour restifier mon ou mes erreurs


Message édité par bodiallo le 19-01-2019 à 08:46:36
mood
Publicité
Posté le 17-01-2019 à 18:42:36  profilanswer
 

n°2328365
pass-by
Posté le 30-01-2019 à 10:18:24  profilanswer
 

Tu as intérêt à définir des variables pour ton classeur et ta feuille source ainsi que pour ton classeur et ta feuille cible.
 
Pas mal d'infos ici : https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/
 
Puis à les utiliser dans ton code à la place de "ActiveSheet" qui correspond à ta feuille active (qui peut changer en plus selon ton code si tu utilises `Select` notamment).


Message édité par pass-by le 30-01-2019 à 10:18:52

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  dupliquer une feuille de mon classeur chaque mois

 

Sujets relatifs
Ecrire une variable tableau sur une feuille avec colonne masquéeescopier coller d une feuille a une autre
copier coller plusieurs feuilles dans une feuille[Résolu]Comment changer automatiquement/manuellement de feuille
Optimisation Macro remplissage feuille à partir d'autres feuillesCopier coller valeur sur deux feuille avec conditions
Copie contenu d'une feuille sur une feuille d'un autre classeurmodifier code pour chercher classeur sur c:
Ecrire un tableau dans une feuille de calcul 
Plus de sujets relatifs à : dupliquer une feuille de mon classeur chaque mois


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR