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 :

re-affecter de nouvelles valeur avec for each


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut re-affecter de nouvelles valeur avec for each
    Bonjour
    ci joint un tableau
    avec une liste personnel avec certain un statut MPOWER et un planning
    allant de la date 1 à 3 (pour le moment ) puisque j'essaie de comprendre le fonctionnement,
    et une zone de code horaire
    l'idée etait de recuperer pour chaque statu MPOWER la liste du personnel
    avec les code horaires et la date
    afin de generer un tableau planning, uniquement pour les MPOWER

    dans le fichier TOUT ca fonctionne,

    Je voudrais maintenant qu'à la places des codes horaires apparaissent
    l'heure du début du code horaire...
    et là... je me perd dans les maniere d'imbriquer les for each... next

    peut etre y a t il plus simple...
    je cale...

    si vous avez une idée...

    tres cdt

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Merci de détailler un peu plus ton besoin, code à l'appui.

    Il ne faut pas oublier que beaucoup de membres ne peuvent ou ne veulent télécharger des fichiers, vous vous fermez des portes qui pourraient vous apporter des solutions.

    Philippe

  3. #3
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    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
    Sub extraregroupe()
     
    Dim zonestatut As Range
        Set zonestatut = Range("b7:b13")
    Dim cell As Range
        manpower = "MPOWER"
    Dim zonecodehor As Range
        Set zonecodehor = Range("I7:I10")
    Dim planning As Range
        Set planning = Range("d7:f10")
    Dim jourdumois As Range
        Set jourdumois = Range("d5:f5")
    Dim lstperso As Range
        Set lstperso = Range("a7:a13")
    Dim debutTableau As Range
    Set debutTableau = Range("a19")
    Dim i As Integer
    ' valeur de  i = le num de la colonne du debut planning en partant de 0
    i = 3
    'valeur de j = num de la derniere colonne du planning (+i)
    j = i + 2
    'k est une valeur pour que dans le code le i soit constant...
    k = i
    'efface le tableau avant de le creer
    debutTableau.Select
    debutTableau.CurrentRegion.Clear
     
    'regroupe les noms des extras
    debutTableau.Offset(1, 0).Select
    For Each cell In zonestatut
     If cell = manpower Then
     ActiveCell = cell.Offset(0, -1)
     ActiveCell.Offset(1, 0).Select
     End If
    Next
    Dim zonemapower As Range
     Set zonemapower = debutTableau.Offset(1, 0).CurrentRegion
     
    'tableau des jours du mois
    debutTableau.Offset(0, 1).Select
    For Each cell In jourdumois
    ActiveCell = cell.Offset(0, 0)
    ActiveCell.Offset(0, 1).Select
    Next
     
    'regroupe les codes horaires sur les noms et les jours
    debutTableau.Offset(1, 1).Select
    Dim cellule As Range
    For Each cellule In zonemapower
       For Each cell In lstperso
       If cell = cellule Then
       For i = k To j
       ActiveCell = cell.Offset(0, i).Value
       ActiveCell.Offset(0, 1).Select
       Next i
       ActiveCell.Offset(1, -3).Select
       End If
       Next cell
       Next cellule
     
    End Sub
    voila le code
    les noms du peso donc à partir de a7
    le statut MPOWER ou pas a partir de b7
    la colonne C est vide et le planning commence en ligne par les dates
    de d5 à d7
    et les codes horaires sous les dates en face de chaque noms a partir de d7

    je recupere a compter du a19
    le planning uniquement des satatut MPOWER
    avec les codes horaires..
    je voudrais remplacer chaque code horaire trouver par l'heure du debut de service

    l'index code horaire est a partir de la colone i7 en j7 l'heure du debut de service k7 l'heure de la fin de service et l7 le temps de pause et j'ai differents code en i8-i9-i10 etc..

    voilà y a plus d'infos,
    le mieux est tout de meme de le voir sur le fichier... je pense...

    merci

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Le mieux serait de carrément savoir ce que tu comptes faire au final, par ce que je sent venir le pas a pas et au final 3 formules matricielles qui feront le même boulot 3 fois plus vite.
    Donc quel sont les contraintes?
    -Uniquement de faire une liste avec les employers marqué Empowered
    -et faire correspondre a un code une plage horaire

    Je suis pas un spécialiste es formules, mais pour l'instant il me semble que le vba n'est pas requis.
    Fait quelques recherche sur les formules matricielles, particulièrement sur leur utilisation pour créer une liste sans doublon (a vu de nez une adaptation est possible)
    Regarde du coté des formule Equiv, Index, recherche verticale, decaler, ligne(), colonne()...
    Pense a faire des étiquettes de plage pour réduire tes formules
    A++
    Qwaz

Discussions similaires

  1. [xsl] Problème avec for-each
    Par VolaiL dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 22/03/2006, 11h28
  2. [XSLT]problème avec for-each incompréhensible
    Par trotters213 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/02/2006, 10h31
  3. [XML][XSLT] Débutant {Probléme avec For-each-group}
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/01/2006, 21h38
  4. [VB]Probleme avec for each .....
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/01/2006, 08h31
  5. [VB.NET] Problème avec For Each...
    Par cyrcroix dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/06/2005, 10h49

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