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 :

Copier des cellules en fonction des informations d'autres cellules


Sujet :

Macros et VBA Excel

  1. #41
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    OUPS ! Non j'ai du insérer 3 fois...

    Le nombre de CP sur la semaine se calcule automatiquement, ça c'est fait via une formule.

    Je ne me préocupe pas du nombre de CP sur le mois ou l'année, je veux juste que pour les RM le nombre de CP ne dépassent pas 5 (les utilisateurs ne doivent pas saisir de CP le jour de repos.

  2. #42
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    je te remets le code commentés, je ne peux mieux faire pour les explications :
    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
    Sub Demo1()
        'Chaque tableau font la même taille et chaque position d'éléments de la liste à une correspondance sur la même postion des autres tableaux (1 dimension)
        'Par défaut un tableau commence à l'indice 0 - donc si on à 5 valeurs dans le tableau les indices seront 0, 1, 2, 3 et 4
        Position = Array(1, 2, 3, 4, 5) 'Tableau 1 dimension juste pour illustrer la position des valeurs dans les tableaux Liste, Correspondance, Couleur et Num_Couleur
        Liste = Array("RTT (RM)", "ABSENT", "CONGES", "MALADIE (Journée)", "JOURS EXCEPTIONNELS") 'Tableau représentant la liste à sélectionner => 5 valeurs
        Correspondance = Array("RTT", "ABS", "CP", "MALADIE", "CP Excep") 'Tableau représentant ici la correspondance à un éléments de la liste qui a été sélectionné => 5 valeurs
        'Chaque valeurs 
        Couleur = Array("Vert", "Rouge", "Orange", "Marron", "Jaune") 'Tableau représentant ici la couleur à un éléments de la liste qui a été sélectionné => 5 valeurs => juste pour illustrer
        Num_Couleur = Array(1, 2, 3, 4, 5) 'Tableau représentant ici la valeur de la couleur à un éléments de la liste qui a été sélectionné => 5 valeurs => pour utilisation de Interior.Color ou Interior.ColorIndex
        'On pourrait aussi faire un tableau pour avoir une correspondance sur la couleur de la typo/font
     
        For i = LBound(Position) To UBound(Position)
            'LBound Renvoie le plus petit indice disponible pour la dimension indiquée du tableau - ici 0 => 1er élémént
            'UBound Renvoie l'indice le plus élevé disponible pour la dimension indiquée du tableau - ici 4
            MsgBox "Pour la position " & i & " du tableau nous avons : " & Liste(i) & vbCrLf & _ 'dans la boucle on récupère chaque valeur de i : i commençant à 0 finissant à 4 - cf explication plus haut
                        " - en position (dans l'ordre des éléments) : " & Position(i) & vbCrLf & _ 'En indiquant i dans chaque tableau on a une correspondance à chaque éléments de la liste pour chaque tableau …
                        " - de correspondance : " & Correspondance(i) & vbCrLf & _                 '… ainsi que sa position, sa correspondance, sa couleur (pour illuster) et la valeur de la couleur
                        " - de couleur : " & Couleur(i) & vbCrLf & " - N° de couleur : " & Num_Couleur(i)
     
        Next
     
        MsgBox "Donc si on Match pour CONGES, on aura sa position" & vbCrLf & _
        "(contrairement au tableau on aura une valeur de 1 à 5 : le nb d'éléments) => MaPosition -1 pour Match dans le tableau"
     
        MonCONGES = "CONGES" 'MonCONGES pourrait être Target si on le remplace dans la procédure adéquat
        MaPosition = Application.Match(MonCONGES, Liste, 0) 'Match est équivalent dans une formule excel par exemple : =EQUIV(41;B2:B5;0)   Position de 41 dans la plage B2:B5 (4)
        MsgBox "La Valeur de MaPosition est : " & MaPosition
        'Donc on cherche la position de la valeur sélectionné dans la liste - dans l'exemple j'ai simulé que c'était "CONGES" qui était sélectionné
            MsgBox "Pour la position " & MaPosition - 1 & " nous avons : " & Liste(MaPosition - 1) & vbCrLf & " - de correspondance : " & Correspondance(MaPosition - 1) & vbCrLf & _ 'le résultat dans un MsgBox 
                        " - de couleur : " & Couleur(MaPosition - 1) & vbCrLf & " - N° de couleur : " & Num_Couleur(MaPosition - 1)
     
        MsgBox "Maintenant on va vérifier si un éléments de la liste exsite"
     
        If Not IsError(MaPosition) Then 'ici donc pour remplacer par exemple "If Target = "AT (Journée)" Then …" on vérifié la valeur "MaPosition" dans Application.Match
            MsgBox "L'éléments de la liste " & Liste(MaPosition - 1) & " existe," & vbCrLf & _ 'ce qui nous donnera toutes les valeurs voulus (en restant sur l'exemple "If Target = "AT (Journée)") …
            "je peux donc renvoyer la valeur de MaPosiotion -1 sur les autres tableaux pour récupérer " & vbCrLf & _ 'dans ton code tu as : "AT" et ".Color = vbMagenta" , etc …
            "la correspondance, la couleur ou le chiffre correspondant à la couleur" 'donc à partir de ce principe avec 4 lignes de code tu génères automatiquement l'ensemble des cas selon la valeur sélectionnée de ta liste
        End If
     
    End Sub

  3. #43
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    Super, Hier soir j'ai revu ton code, je commence à y voir clair...

    je revois ça dans la journée...

  4. #44
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re,
    normalement on utilise l'évènement utilisant Calculate quand il y a des formules, mais à défaut de mieux pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        With ActiveSheet
            For i = 3 To UBound(.UsedRange.Value) Step 9
                If .Range("P" & i) = "MSG" Then MsgBox "Le nombre de CP pour " & .Range("A" & i) & vbCrLf & _
                                                                                "ne peut être supérieur à 5, merci de modifier"
            Next
        End With
    End Sub

  5. #45
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    Slt,

    j'ai bien avancé, j'ai décortiqué ton code et le comprend, j'ai passé mon après midi d'hier et ce matin a compléter le tableau de différentes formules...
    on peut oublié le msg, j'ai trouvé une autre solution, juste une couleur qui apparaît ...

    j'ai modifié un peu la structure de horaire de base et du coup modifié le code qui ne fonctionnait plus et ça a marché ! yesss !

    j'ai également ajouté des boutons de commandes activex qui doivent envoyer un mail lorsque l'on clique dessus, ca a marché une fois, puis message d'erreur...

    en tout cas je te remercie vraiment pour ton aide !

  6. #46
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour NadStin,

    si tu penses que ton post est résolu par rapport à la demande initial, n'oublie pas de montrer ton code finalisé (pour ceux qui auront un pbm similaire) et de mettre alors
    à moins que tu es d'autres questions concernant ta demande initial.

    PS : Je ne sais pas si tu as fait attention comme tu es nouvelle,
    il y un système de vote avec ou (en bas à droite de chaque posts)
    pour les posts/réponses qui t'ont été utiles (quelque soit les sujets traités),
    cela permet de récompenser ceux qui auront donné de leur temps pour l'aide fourni présent et avenir

  7. #47
    Membre confirmé
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Par défaut
    Bonjour Ruy,

    Je fais tout ca ce soir...

    Merci encore pour ton aide !

  8. #48
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour NadStin,

    Concernant l'envoi de mail, c'est une partie que je n'ai pas travaillé, donc je ne pourrais t'aider là dessus.
    par contre si tu as vraiment une difficulté la dessus, je te conseille d'ouvrir un nouveau post sur le sujet et
    de mettre le code entrepris afin que l'on puisse de répondre ou t'aiguiller vers la solution.

    PS : rien de grave mais c'est pas Ruy mais Ryu

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [XL-2010] Macro pour copier/insérer des lignes en fonction de séparateur dans une cellule
    Par Dncky dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/12/2015, 20h44
  2. [XL-2013] Copier des cellules en fonction d'une plage de cellules
    Par Flows dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/02/2014, 19h38
  3. [XL-2003] Remplissage d'une cellule en fonction du contenu d'autres cellules.
    Par homer83140 dans le forum Excel
    Réponses: 27
    Dernier message: 13/01/2011, 17h39
  4. [XL-97] Changement valeur d'une cellule en fonction de valeurs d'autres cellules
    Par chubak62 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/01/2011, 11h21
  5. Sommer des cellules en fonction du contenu d'autres cellules
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/12/2007, 23h05

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