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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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.

  7. #7
    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.

  8. #8
    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.

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

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