IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création d'onglet par VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Par défaut Création d'onglet par VBA
    Bonjour à tous,

    Ne connaissant presque rien en VBA, je m'adresse à ce forum pour ouvrir à partir du bouton une fenêtre userform ( qui est crée) me permettant d'ouvrir une semaine complète. Différencier les couleurs pour mieux se repérer. Choisir le nombre de journée à ouvrir( le plus souvent ce sera du lundi au dimanche). Si je clique de nouveau sur ce bouton recréer une semaine S02 et ainsi de suite.

    Je vous joins le fichier.

    Merci beaucoup pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Salut
    Commandes de services. ça tombe bien pour les programmeurs chômeurs dont je fais actuellement partie.
    A quelle adresse voudrais-tu que je t’envoies le devis de ce petit projet ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Par défaut
    Salut,

    Envoies le devis sur l'adresse canaque1@laposte.net.

    Merci.


    Michaël.

  4. #4
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,

    Ci -joint un exemple de macro:

    Exemple pour créer les onglets de la semaine 1 à 52 de Lundi à Dimanche...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub test()
     AjouterSemaines 1, 52, 1, 7
    End Sub

    Et voici la macro à adapter au besoin...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    Public Sub AjouterSemaines(intSemDeb As Integer, intSemFin As Integer, _
                               intJDeb As Integer, intJFin As Integer)
    Dim color1 As Long
    Dim color2 As Long
    Dim i As Integer
    Dim j As Integer
    Dim sh As Worksheet
    Dim jTxt(7) As String
    Dim txt As String
     
      On Error GoTo lblFin
     
      Application.ScreenUpdating = False
     
      'Semaines
      intSemDeb = 1
      intSemFin = 52
     
      'Jours
      intJDeb = 1
      intJFin = 7
     
      'Couleurs
      color1 = RGB(255, 0, 0)
      color2 = RGB(0, 0, 255)
     
      'Traitement
      jTxt(1) = "L"
      jTxt(2) = "M"
      jTxt(3) = "Me"
      jTxt(4) = "J"
      jTxt(5) = "V"
      jTxt(6) = "S"
      jTxt(7) = "D"
     
     
      For i = intSemDeb To intSemFin
        For j = intJDeb To intJFin
          txt = jTxt(j) & " S" & Format(i, "00")
          For Each sh In ThisWorkbook.Worksheets
            If sh.Name = txt Then
              Application.DisplayAlerts = False
              sh.Delete
              Application.DisplayAlerts = True
              Exit For
            End If
          Next sh
          Set sh = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
          sh.Name = txt
          If i Mod 2 = 0 Then
            sh.Tab.Color = color1
          Else
            sh.Tab.Color = color2
          End If
          Set sh = Nothing
        Next j
      Next i
     
    lblFin:
      Application.ScreenUpdating = True
    End Sub
    Cdlt

  5. #5
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Bonjour Michaël et bienvenue sur le forum d'entraide Excel de developpez.

    -1$ pour le premier.
    +2$ pour le deuxième.

    Tu as posté sur le bon forum afin de trouver des experts qualifiés pour t'aider à résoudre des problèmes de conception ou de développement.
    "La solidarité internaute" et les bonnes volontés sont typiques du site.
    Mon intervention précédente insinue que si tu n'es pas disposé à coder, il y a des routes directes. Voir la section Offres.
    Si tu veux pouvoir manipuler et progresser en VBA, il va falloir d'autres implications de ta part.
    Tu pourras alors constater avec quelle ferveur les contributeurs t'aideront.

    Et si tu es emballé pour le service commandé payant, sans blagues, je suis partant.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Dans le peu que tu as créé, je vois déjà au moins deux maladresses.

    D'abord, évite de fusionner des cellules, surtout lorsque c'est inutile (comme dans ton cas). C'est une source de problème, en particulier quand on veut faire du code.

    Ensuite, évite d'écrire tes données sous le forme "1 à 52" parce qu'il va falloir ensuite les disséquer avec le code pour en tirer le "1" et le "52". Il est bien plus simple de créer une cellule de début dans laquelle tu mets 1 et une cellule de fin dans laquelle tu mets 52.

    Citation Envoyé par canaque Voir le message
    ouvrir à partir du bouton une fenêtre userform
    Pour une application comme celle-là, un userform ne sert à rien.
    Il est beaucoup plus simple et pratique de créer un bouton avec un simple forme (un rectangle ou un ovale) auquel tu attaches une macro.

    me permettant d'ouvrir une semaine complète.
    Pour récupérer les numéros (semaine, jours) à traiter, voir la propriété Value de l'objet Range.
    Pour enchainer les création, voir l'instruction "For to".
    Pour créer un nouvel onglet, c'est la méthode Add de l'objet Worksheets.
    Pour changer le nom d'un onglet, c'est la propriété Name de l'objet Worksheet.
    Pour changer la couleur d'un onglet, c'est la propriété Color de l'objet Tab lui-même objet de Worksheet.

    Regarde ces termes dans l'aide intégrée VBA. Avec ça, tu as tout ce qu'il faut pour faire ce que tu souhaites.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Par défaut
    Bonjour,


    j'attends toujours ton devis???????

    Je dois peut être demandé à quelqu'un d'autre par que côté réaction c'est pas trop ça. Ça m'étonnes pas.

    Merci.

    salut menhir,

    Des maladresses j'en ai énormément je n'y connais rien au VB et je souhaite apprendre. Mais j'ai besoin d'aide pas un code qu'on m'envoie et que j'utilise comme ça. Mais un code que je comprends.

    Merci pour vos réponses. Je vais me remettre dessus.

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par canaque Voir le message
    côté réaction c'est pas trop ça. Ça m'étonnes pas.
    Pour quelqu'un qui demande de l'aide, tu as une façon étrange de t'adresser aux autres...

    Citation Envoyé par canaque Voir le message
    je n'y connais rien au VB et je souhaite apprendre.
    Dans mon message, je t'ai fourni tous les éléments pour que tu apprennes le nécessaire pour créer ce que tu souhaites.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Par défaut
    Merci Arosec pour cette base sympa.

    Je vais me plonger dedans pour essayer de comprendre un peu ce qui est fait et le modifier au besoin.

    Merci à menhir pour ces conseils avisés.



    Cdt.


    Michaël.

  10. #10
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    Citation Envoyé par Menhir Voir le message
    Pour quelqu'un qui demande de l'aide, tu as une façon étrange de t'adresser aux autres...
    En effet très étrange.Je m'en suis aperçu au premier post.
    Notre ami semble manquer d'un grain d'humilité qui ne lui sera que bénéfique.
    Certains sur ce forum, sont un peu vieux jeu. (Bien que le terme vieux jeu me paraisse inapproprié pour exprimer des règles fondamentales d'échanges)
    @Michael:
    Le caractère hautain te privera du soutien utile et efficace de potentiels contributeurs.
    Je ne suis pas sur le site pour être discourtois. Je n'en ai pas le temps d'ailleurs.
    Et s'il m'arrivait de l'être par mégarde, je me ressaisirais avec toute l'humilité que cela mérite.
    Je viens sur developpez, comme beaucoup pour accroître mes connaissances sur différentes branches informatique.
    Les passages à vide, quand j'en ai, je contribue sur le forum Excel.
    Je suis loin d'être parmi les plus gros contributeurs, ni le meilleur technicien, mais tu perds l'opportunité d'une expérience enrichissante avec un Technicien par une introduction pareille.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2014
    Messages : 5
    Par défaut
    Bonjour à tous,

    Je post un message demandant de l'aide, je suis sur un forum d'entraide il me semble. On me propose déjà de payer pour m'aider. je fournis mon adresse mail pour une réponse.
    Maintenant si c'est pour payer je m'adresse directement à un programmeur, je demande ce que je souhaite et c'est réglé, n'en parlons plus. Mais malheureusement je suis toujours un peu trop pressé.

    Si j'ai pu paraitre hautain et "froissé" des personnes, je suis désolé.

    Je me suis jamais lancé dans des choses comme celle-ci donc j'ai du mal à comprendre les commandes. Merci à menhir pour ces commandes d'ailleurs mais difficile pour moi de les assembler.

    Encore désolé de cette réaction, et toutes mes excuses par la même occasion.

    Merci à vous.

    Michaël.

  12. #12
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Salut,
    Je dois reconnaître que tu n'as pas tort sur tous les côtés.
    C'est plutôt mon accueil qui doit avoir été un petit peu maladroit.

    Je post un message demandant de l'aide, je suis sur un forum d'entraide il me semble. On me propose déjà de payer pour m'aider. je fournis mon adresse mail pour une réponse.
    Tu réponds partiellement : sur un forum d'entraide, on ne paye pas pour les réponses. J'ai essayé de te le faire comprendre à ma deuxième réponse.
    Si j'ai pu paraitre hautain et "froissé" des personnes, je suis désolé.
    Personne ne t'en veut.
    Pour preuve, c'est peut-être moi qui s'y est pris mal, influencé sans doute par d'autres choses qui n'ont rien à voir ici. Je m'en excuses.
    Etant de bonne humeur aujourd'hui, (J'avais 2 personnes très chères: maman et ma frangine souffrantes qui sont toutes deux successivement en bonne voie de guérison), eh bien j'acceptes dans cette joie de t'offrir toute ma disponibilité gratuitement.
    Je vais de ce pas télécharger ton fichier (chose que je ne fais presque jamais) pour comprendre ce que tu veux?

  13. #13
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    C'est tel que je le penses. Tu veux faire un petit programme automatisé en VBA sous Excel.
    Tu ne connais rien du VBA, et tu es pressé sur ton prog pour apprendre à le faire. Tu te retrouveras très vite dépendant des forums en faisant des copier-coller de code inadaptés parfois incohérent perdant alors beaucoup de temps à trouver de l'aide pour solutionner les petites galères.
    Un conseil avisé: Tu perdras moins de temps à apprendre qu'à, trouver les solutions des petits problèmes dans les forums.

    Comme je m'y attendais le fichier ne dit rien.
    Tu vas devoir m'indiquer avec plus de précision le but du programme, la présentation et l'automatisme que tu souhaites réaliser... Il peut y avoir des approches différentes.

  14. #14
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par canaque Voir le message
    Je post un message demandant de l'aide
    Je pense que, par méconnaissance, tu n'as pas évalué l'ampleur de ta demande. Comme je te le disais, ça correspond à un véritable développement qui demande plusieurs heures de travail.
    Or, les participants de ce forum sont des bénévoles qui sont effectivement là pour apporter de l'aide par des réponses sur des problèmes techniques mais ils ne sont pas ici pour se substituer à des développeurs.

    Lis les autres sujets et tu pourras constater qu'il est assez peu apprécié, d'une manière générale, les demandes de développement complètes.

    L'excuse "je n'y connais rien" n'est suffisante : même les plus compétents, à un moment donné, n'y connaissaient rien (moi-même, je n'ai découvert le VBA qu'il y a à peine plus d'un an). A notre époque, c'est loin d'être rédhibitoire et il est assez simple de progresser.

    Je me suis jamais lancé dans des choses comme celle-ci donc j'ai du mal à comprendre les commandes. Merci à menhir pour ces commandes d'ailleurs mais difficile pour moi de les assembler.
    Il faut bien commencer un jour.
    Si tu veux le faire sérieusement, commence par récupérer un tutorial de base (il y en a ici) pour apprendre l'usage de l'éditeur, les structures, les objets de base.
    Ensuite tu pourras utiliser l'aide intégrée à VBA (pour moi, c'est la meilleure source d'information avec l'enregistreur automatique) et y chercher entre autre les objets que je t'ai décrits.

    Comme le disait Jonathan Livingstone le goéland : Avant de penser à faire des looping, apprenons le vol à l'horizontal.
    Ce à quoi je rajouterai un précepte confucéen : Donne un poisson à un homme, tu le nourris pour la journée. Apprends-lui à pêcher, tu le nourris pour la vie.

    Bon courage et n'hésite pas à revenir sur ce forum si tu souhaites des réponses à des questions plus précises.

Discussions similaires

  1. [VxiR2] création d'onglet par occurence d'une dimension
    Par swann12 dans le forum Webi
    Réponses: 3
    Dernier message: 11/02/2013, 14h33
  2. [AC-2003] Créations des Relations par VBA
    Par jmde dans le forum VBA Access
    Réponses: 0
    Dernier message: 24/03/2011, 12h32
  3. [XL-2003] Création de procédure par VBA
    Par setepenre dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/12/2010, 09h12
  4. [Table] Création de table par VBA-DAO
    Par Invité dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/05/2007, 10h07
  5. Création de label par VBA (excel)
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo