calendrier ne se recopie pas dans un nouvel onglet

terpick

XLDnaute Occasionnel
Bonsoir,

Cela fait deux heurs que je bute dans un truc simple.
Je crée des nouveaux onglets à l'aide d'un bouton (Archiver).

Dans l'onglet créé je vide automatiquement le tableau. Mon problème, que le calendrier ne se recopie pas. (Colonne C).

A l'aide SVP!!!

Merci d'avance
 

Pièces jointes

  • ramatest.xls
    60 KB · Affichages: 79

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour,

Ce qui est génial est simple !

J'ai même pas pensé à cette solution. Merci beaucoup pour votre coup de "cerveau".

Maintenant mon fichier est prêt à l’utilisation... sauf un petit défaut.
J'ai bien réussi (c'était simple) de trouver la solution pour annuler l'archivage si la première ligne ne contienne pas de date. Le problème, si je rajoute plusieurs lignes et je ne saisie pas la date dans la dernière (un oublie par exemple), l’archivage s'effectue quand-même. Cela provoque l'écrasement de cette dernière ligne sur la feuille Bilan lors du prochain archivage. J'ai voulu changer la colonne de recherche de la dernière cellule vide, mais toutes les colonnes peuvent contenir des cases non remplies. Comment faire pour éviter cet écrasement? (C'est la dernière question sur ce fichier :)

Merci pour votre patience et temps consacré.

A+
 

JCGL

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour à tous,
Hello Mimi :) :),

Un essai avec des semaines complètes obtenues par formules.

Bises à Mimi
A + à tous
 

Pièces jointes

  • JC Création Semaines et Archivage.xls
    63.5 KB · Affichages: 36

mth

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour terpick

Que dirais-tu de tester si une cellule est vide avant d'archiver?

Voici l'essai:
Code:
Sub test_dernier_total()
    Dim TrouveLe As Long, lig As Long, nbvide As Byte
    TrouveLe = Cells(Rows.Count, 3).End(xlUp).Row
    nbvide = WorksheetFunction.CountIf(Range(Cells(TrouveLe - 1, 3), Cells(TrouveLe - 1, 10)), "")
 
    If nbvide > 0 Then
        MsgBox "La ligne précédente est incomplète"
        Exit Sub
    End If
 
    Cells(TrouveLe, "B").EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    lig = Sheets("semaine").Cells(Rows.Count, 3).End(xlUp).Offset(-1, 0).Row
    Sheets("semaine").Range("G" & lig + 1).Formula = "=SUM($G$7:$G$" & lig & ")"
    Sheets("semaine").Range("H" & lig + 1).Formula = "=SUM($H$7:$H$" & lig & ")"
    Sheets("semaine").Range("I" & lig + 1).Formula = "=SUM($I$7:$I$" & lig & ")"
End Sub

Bien à toi,

mth

Edit :):) Hey :):) bien contente de te croiser JC, tout plein de bises :) :)
 

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Encore bonjour tout le monde,

La version de JC est très intéressante, mais dans le cas présenté j'ai besoin de X lignes pour chaque date.
Merci JC, je mets cetts version dans mes archives.

mth, c'est ce que je voulais !
Après avoir apporté qques modifes tout me parait correct (j'espère, ne pas seulement pour le moment :)
J'ai ajouté cette option pour le bouton ARCHIVER et ai laissé la possibilité de ne pas mettre les observations, quand-même! :))

Merci encore à vous tous et a +
 

Pièces jointes

  • (1)-1.xls
    112.5 KB · Affichages: 40

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Salut le Forum, mth !

mth, grâce à votre aide avec le fichier précédent, j'essaie de créer encore un, similaire.

Tout va bien, sauf deux petites choses.

la première:

J'ai beaucoup aimé le message
MsgBox "Cette semaine est déjà archivée"
Par contre dans mon nouveau fichier je crée les onglets avec des noms. Comment faire alors dans ce cas?

et la deuxième question:

Lors de l'archivage avec bouton OK je nettoie le tableau sur la Feuil1. Mais j'étais obligé de tricher en ajoutant le message
MsgBox ("Pour archiver il faut avoir au moins 2 enrégistrements")
sinon
.Rows("8:" & lig - 1).ClearContents
.Rows("8:" & lig - 2).Delete
me supprimait la ligne avec TOTAL

A vrai dire, ce problème j'ai eu déjà et dans mon premier fichier, mais là bas le tableau avait beaucoup de lignes, tandis que dans ce lui-là y peut avoir un seul enregistrement, et je ne veux pas obliger l'utilisateur d'ajouter une ligne qui ne sert à rien.

Voici mon nouveau fichier. Je vous remercie d'avance pour l'intérêt à ce sujet.



à vrai dire je ne l'ai pas résolu dans le premier fichier non plus, mais la bas les tableaux ont beaucoup de lignes.
 

Pièces jointes

  • archiver_nom_cellule.xls
    41 KB · Affichages: 52

mth

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour terpick :)
Bise JC :)

Un esssai avec juste quelques modifs:
Code:
Sub Macro1()
Dim ligb As Long, lig As Long
Dim TrouveLe As Long, nbvide As Byte
    TrouveLe = Cells(Rows.Count, 4).End(xlUp).Row
    nbvide = WorksheetFunction.CountIf(Range(Cells(TrouveLe - 1, 4), Cells(TrouveLe - 1, 7)), "")
        
     If Range("D9") = "TOTAL" Then
        MsgBox ("Pour archiver il faut avoir au moins 2 enrégistrements")
    Else
'x'
    If IsEmpty(Sheets("Feuil1").Range("D8")) Then Exit Sub
    
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveWindow.DisplayGridlines = False
 
'*'
    On Error GoTo Gesterreur
    Sheets(Sheets.Count).Name = Sheets("Feuil1").Range("D8")
    Sheets("Feuil1").Columns("D:K").Copy Sheets(Sheets.Count).Range("D1")
'*'
    Sheets(Sheets.Count).Shapes("Bouton 1").Delete
    
    With Sheets("feuil1")
        lig = .Cells(Rows.Count, 4).End(xlUp).Row
        .Range("D8:G" & lig - 1).Copy
        Application.CutCopyMode = False
        .Rows("8:" & lig - 1).ClearContents
        .Rows("8:" & lig - 2).Delete
    End With
    
        End If
'*'
Exit Sub
Gesterreur:
MsgBox "Cet onglet existe déjà"
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub

Bon après-midi,

mth
 

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Merci mth pour la solution et la réponse rapide.

Par contre je viens juste de penser... c'est peut-être mieux de rajouter les données du tableau dans un onglet correspondant et non les bloquer? Qu'en pensez-vous?
 

mth

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

re :)

Personnellement je n'en pense pas grand chose, c'est très bien aussi mais tout dépend de ta finalité.
Vois ce qui te semble le mieux en fonction de ce que tu veux faire et reviens si tu bloques quelque part ok ?

Bon après midi et @ + :)

mth
 

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Ah, la finalité :)
Voici comment je vois mon truc :

Sur feuil1 on peut saisir des enregistrements, pour les séparer, on crée les onglets à part pour chaque.

Voilà les problèmes pas tout à fait réglés (à mon goût):

1. Pour ne pas créer les redondances, on empêche la création des onglets avec le même Nom. Mais si je veux rajouter une ligne dans un onglet déjà archivé, je fais comment??? Pour régler cela j'ai annulé la suppression de bouton sur le nouveau onglet :
Sheets(Sheets.Count).Shapes("Bouton 1").Delete
.
On peut donc ajouter une ligne oubliée sur l'onglet correspondant.
L’inconvénient de cela, c'est que je vais envoyer ces onglets par mail automatiquement et je ne veux pas que les boutons soient visibles. Comme solution je vois la possibilité sur la Feuil1 de saisir le nom déjà archivé et lors de sont archivage pouvoir le placer en bas du tableau dans un onglet correspondant.

2. Je suis obligé toujours saisir 2 lignes minimum sur la Feuil1 pour assurer l'archivage correcte. Sinon, je bousille mon tableau de base.

Pour résumer, je joins le fichier où en appuyant sur le bouton OK on est exposé à ce problème.
Si on ajoute une ligne et on appuie sur OK par la suite, rien ne s'archive. Très bien, mais comment ajouter une ligne Bubu dans un onglet Bubu (sauf le bouton que j'ai laissé).

Si mon français n'est pas compréhensible des fois, posez moi des questions svp :) :)

Merci d'avance.
 

Pièces jointes

  • archiver_nom_cellule-8.xls
    46.5 KB · Affichages: 31

mth

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonsoir à tous :)

terpick, j'ai modifié quelques petites choses, vois si le fichier joint te convient.

Bonne soirée,

mth
 

Pièces jointes

  • archiver_nom_cellule-8(1).xls
    49 KB · Affichages: 37
  • archiver_nom_cellule-8(1).xls
    49 KB · Affichages: 42
  • archiver_nom_cellule-8(1).xls
    49 KB · Affichages: 42

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour mth, le Forum,

mth, merci pour pour le suivi de mon fichier :)

Cette version est déjà pratiquement agréable à utiliser. J'ai pensé quand même à une petite chose qui pourrait l'améliorer, mais là, vraiment, je ne suis pas sûr si c'est facile à réaliser.

Alors, quand l'utilisateur saisie sur la feuil1 un nom déjà existant, lors de la tentative de l'enregistrement de celui-ci, sa demande va être annulée. Mais imaginons qu'il va saisir plusiers lignes, elles vont être perdues.
Est-ce possible de l'interdire la saisie du nom déjà existant tout de suite? Par example, si l'onglet Abab existe déjà et je saisie Abab sur la Feuil1, le logiciel me renvoie sur l'onglet correspondant à ce moment-là? De telle manière on évite la saisie inutile.

Voilà donc, ma dernière question à ce sujet

Merci beaucoup,

Bonne journée.
 

mth

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonsoir terpick

Tu trouveras ton fichier ci-joint avec quelques modifications:
La zone nommée a est dynamique
Une fonction issue du site de myDearFriend pour tester l'existance d'un onglet:

Code:
Function FeuilExiste(F As String) As Boolean
'myDearFriend!  -  [URL="http://www.mdf-xlpages.com"]www.mdf-xlpages.com[/URL]
On Error Resume Next
FeuilExiste = Not Sheets(F) Is Nothing
End Function

et ce code placé dans le code de la Feuille 1 qui redirige ves l'onglet en question si celui ci existe:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig As Long
derlig = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row - 1
If Not Intersect(Target, Range("D8:D" & derlig)) Is Nothing And Target.Count = 1 Then
    If FeuilExiste(Target.Value) Then
        MsgBox "Feuille déjà archivée"
        Sheets(Target.Value).Select
    End If
End If
End Sub

Vois si cela peut t'aider et à bientôt,

mth
 

Pièces jointes

  • archiver_nom_cellule-8(1).xls
    51 KB · Affichages: 30
  • archiver_nom_cellule-8(1).xls
    51 KB · Affichages: 36
  • archiver_nom_cellule-8(1).xls
    51 KB · Affichages: 35
Dernière édition:

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour tout le monde!

mth, ... je n'est pas de paroles. Je dis juste Merci pour ce merveil.

Par contre, vu que je ne comprends strictement rien dans la fonction dynamique, je ne peux même pas de poser de questions sur ce sujet :)
Et le lien ne s'ouvre pas.

Merci beaucoup, cela m'est bien utile

A+
 

mth

XLDnaute Barbatruc
Re : calendrier ne se recopie pas dans un nouvel onglet

re à tous :)

Merci pour ton retour terpick , et désolée je n'avais pas vu que le lien dont je m'étais inspirée pour le code ne fonctionnait pas, je viens de le corriger.

Très bonne journée et à une prochaine fois,

mth
 

terpick

XLDnaute Occasionnel
Re : calendrier ne se recopie pas dans un nouvel onglet

Bonjour le Forum,

bonjour mth !

je reviens sur ce sujet, puisque j'ai trouvé une petite erreur :) la semaine se met un peu en avance.

par exemple, si je mets au début du tableau la date de 05/09/2011, la semaine affichée est la 37, tandis que c'est la semaine 36.
Je suis obligé de demander votre intervention.
Dans la formule existante :
=ENT((MIN(C:C)-(SOMME(ENT((ANNEE(MIN(C:C))-1)/{1;4;100;400})*{365;1;-1;1})-693606)-MOD(MIN(C:C)-7*ENT(MIN(C:C)/7)+6;7))/7)
j'ai changé 7 sur 6:
=ENT((MIN(C:C)-(SOMME(ENT((ANNEE(MIN(C:C))-1)/{1;4;100;400})*{365;1;-1;1})-693606)-MOD(MIN(C:C)-6*ENT(MIN(C:C)/7)+6;7))/7)

Cela l'air de fonctionner, je n'ai rien oublié?
Merci par avance :)

A+
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal