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éer une Boucle ? ou une routine ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut Créer une Boucle ? ou une routine ?
    Bonjour,
    Je suis sur la création d'un fichier de suivie de chantier.
    J'aimerai pouvoir aider mes collègues en créant un fichier permettant de rentrer un chantiers (se serai 4 cellule sur la même ligne) sur une feuilles, et de pouvoir faire suivre cette ligne une fois validé vers la feuille suivant pour une seconde validation, cela sur un total de 5 feuilles.

    Je suis bloqué sur la création d'une boucle qui vérifierai pour chaque ligne si la dernière cellule contient "X":
    - si oui, couper coller la ligne concerné vert la feuille suivant (et bien sur de la mettre à la suite des autres lignes déjà existante)
    - si non, passer à la lignes suivante

    Pouvez vous m'aider ?
    N'hésitez pas si vous avez des questions.

    Je début dans les macro mais j'adore ça, je suis très curieux donc n'hésitez pas je peux tester plein de choses 😁

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Bonjour,

    Dans votre solution, comment faites-vous pour retrouver un chantier particulier si ceux-ci se déplacent d'onglet en onglet ? Quelle est la finalité de votre suivi ?

  3. #3
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Bonjour,
    Le principe de ce tableau sera d'avoir plusieurs feuilles pour chaque étape d'avancement du chantier, le fait de valider une étape transfert la ligne du dossier (avec nom, adresse et num de référence) vers la feuille suivant, ceci permet donc de suivre le chantier de feuille en feuille.
    Je ne sais pas si c'est plus clair ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Bonjour,

    Je ne veux pas jouer les Cassandre, mais pour avoir créé plusieurs Workflows et trempé beaucoup dans l'ingéniérie travaux, je ne m'y serais pas pris comme vous envisagez de le faire.

    Dans ma méthode, je n'aurais envisagé qu'un seul onglet et une colonne permettant de définir l'état d'avancement du chantier en fonction du remplissage des colonnes. Chaque cellule de cette colonne est liée à une liste de validation que vous auriez définie dans un onglet de paramètres, la valeur changeant automatiquement en fonction du contenu des certaines colonnes avec un événement de le module de l'onglet.
    Par ailleurs, l'équivalent de vos onglets, est géré par un mode plan horizontal où les colonnes sont visibles ou non en fonction de l'étape en cours.

    Cette présentation globale m'aurait permis de faire des tableaux d'analyse croisée sur l'avancement de mon activité et en mesurant les retards potentiels.

  5. #5
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Effectivement votre approche a l'air d'être plus simple, mais je ne vois pas comment realiser cette programmation.
    Si vous pouviez juste me lancer sur une piste que je creuse et surtout que ça ne vous prennes pas trop de temps, se serai super, sinon je vais me lancer dans des recherche

    Merci déjà pour votre réponse et votre point de vue que je vais étudier.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Bonjour,

    Quelle est la trame de votre suivi ?

  7. #7
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Bonjour,
    voilà si je me trompe pas ce que vous attendez.

    suivi CHANTIER2.xlsm

    Les colonnes en vert sont les colonnes qui ne sont pas modifiable après leur remplissage 1er partie (pour éviter les suppressions ou modification non-voulu)
    c'est la racine du chantier, il me faudrait donc une validation pour chaque étape :

    - 1er Ouverture du dossier ( remplissage des colonnes verte)
    - 2nd Chantier Réalisé
    - 3eme Attente de DOE
    - 4eme Chantier Clôturé

    Dans mon idée il faudrait que je puisse sortir un tableau clair pour chaque étape afin de pouvoir relancer mes entreprises ou faire un bilan d'activité à mon supérieur.
    Ce qui me ferai à la fin de mon année (si tout c'est bien passé) un tableaux de la 3eme partie avec la totalité de mes chantiers (clôturé avec toute les partie de validées) à la suite.

    J'espère avoir était le plus clair que possible, n'hésite pas si tu veux des précisions.

    merci d'avance

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Une autre façon de voir.

  9. #9
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Pouvez-vous m'expliquer brièvement le fonctionnement de ce tableau, pour voir comment je peux l'adapter à mon environnement.

    en vous remerciant.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    En développant le niveau 2 du plan, j'imagine que vous avez vu que des dates étaient renseignées dans certaines colonnes.
    Pièce jointe 491977

    Dans l'onglet Paramètres, la table des statuts hiérarchise les étapes (du début à la fin). Si vous tapez une date dans une colonne pour un chantier dans l'onglet Suivi chantiers, et si le libellé existe dans la table des statuts, le chantier va changer automatiquement de statut. Il prendra le statut le plus proche de la fin du chantier.
    Pour faire cela, j'utilise une fonction StatutChantier.

    Sachant que les délais des étapes clés peuvent aussi être normés, vous pourriez également évaluer le retard (ou l'avancement) des chantiers en fonction de la date de départ.

    Le statut du chantier correspond à la notion d'onglet que vous vouliez développer.

  11. #11
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Effectivement, ce fonctionnement est très intéressant et serai très bien pour mon utilisation et celle de mes collègues.

    Je ne parviens pas à comprendre comment je peux réduire le nombre de colonne ?
    et comment fait -on pour rajouter des ligne cela ce fait-il a la suite tout simplement ?

    merci d'avance

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Lorsque vous saisissez une valeur dans le tableau, l'événement est capté dans le module de l'onglet Suivi chantier et enclenche le calcul de la fonction StatutChantier
    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim ColStatut As Long, ColChantier As Long
    Dim NumeroChantier As String
     
            If Target.Count > 1 Then Exit Sub
               ColChantier = 2: ColStatut = 3
               NumeroChantier = Cells(Target.Row, ColChantier)
               If Not Intersect(Target, ListObjects("TableSuiviChantiers").DataBodyRange) Is Nothing Then
                  Cells(Target.Row, ColStatut) = StatutChantier(NumeroChantier)
            End If
     
     
    End Sub
    La fonction balaye toutes les étapes en commençant par la fin, la fonction s'arrête à la première date rencontrée correspondant à une étape. Vous pouvez donc ajouter autant de colonnes souhaitées, dans n'importe quel ordre dans l'onglet Suivi chantier, c'est l'ordre de la table des statuts qui sera pris en compte.
    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
     
     
    Function StatutChantier(ByVal NumeroChantier As String) As String
     
    Dim I As Long, J As Long, ColChantier2 As Long, LigneTitreTable As Long
    Dim TabChantiers As ListObject
    Dim LigneChantier As Long
    Dim AireChantiers As Range, AireEtapesChantiers As Range, AireListeEtapes As Range
     
     
       ' Application.Volatile
        StatutChantier = ""
        LigneChantier = 0
        Set AireListeEtapes = Sheets("Paramètres").ListObjects("TableDesStatuts").ListColumns("Statuts").DataBodyRange
        Set TabChantiers = Sheets("Suivi chantiers").ListObjects("TableSuiviChantiers")
     
        With TabChantiers
             Set AireEtapesChantiers = .HeaderRowRange
             LigneTitreTable = 0
             Set AireChantiers = .ListColumns("Chantiers").DataBodyRange
        End With
     
        For I = 1 To AireChantiers.Count
            If AireChantiers(I) = NumeroChantier Then
               LigneChantier = I
            End If
        Next I
     
        If LigneChantier > 0 Then
           For I = AireListeEtapes.Count To 1 Step -1
               For J = AireEtapesChantiers.Count To 1 Step -1
                   If AireListeEtapes(I).Offset(0, 1) = AireEtapesChantiers(J) And AireEtapesChantiers(J).Offset(LigneChantier, 0) <> "" Then
                     ' StatutChantier = AireListeEtapes(I)
                     ' StatutChantier = AireListeEtapes(I).Offset(0, 1)
                      StatutChantier = AireListeEtapes(I).Offset(0, 2)  ' Correspond à votre notion d'onglet 1 à 5
                      Exit Function
                    End If
               Next J
           Next I
     
        End If
     
        Set AireEtapesChantiers = Nothing
        Set AireListeEtapes = Nothing
        Set TabChantiers = Nothing
     
    End Function
    Nb : Les étapes sont numérotées pour que les étapes apparaissent dans un ordre logique dans les TCD.

  13. #13
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Vos réponse sont très clair, mais je pense que je me suis lancé dans quelque chose de beaucoup trop gros pour moi.

    J'arrive à comprendre ce que vous m'expliquez, je comprends le fonctionnement de manière général mais je n'arrive pas à le retranscrire sur mon tableau.
    Il y a tellement de chose dans les lignes des macro que je ne comprends pas, que je m'y perds .

    Je suis persuadé que quelqu'un dans la même situation et de plus expérimenté que moi pourrait tirer profit de vos explications.

    Je ne veux pas vous faire perdre plus de temps, je ne pense pas pouvoir y arriver.
    je vais devoir trouver quelque chose de plus simple bien que je pense que votre approche est la meilleur.

    Je vous remercie beaucoup et j'espère ne pas vous avoir fait perdre trop de temps.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Si vous avez compris le principe, laissez décanter une semaine et regardez de nouveau, vous serez surpris.

  15. #15
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Bonjour,
    je replonge enfin sur ce fichier.

    je voudrait avoir quelques information en plus.

    - votre ficher contient beaucoup de colonnes je souhaite en enlever quelques une,
    Pour cela il faut que je modifie dans la Fonction certaine propriété, non ? et également dans la Feuille Paramètre ?

    - je vais également modifier les intitulés de ces colonnes,
    Est -il possible de modifier directement dans le tableau de la Feuille Paramètre ?

    - je ne vois pas exactement ou intervienne les Feuilles " Commune" et "Tcd conducteurs de travaux",
    Sont-il des information unique pour les menu déroulant ou interviennent-elles dans la macro ?

    Je m'excuse si il y a trop de question =)
    Mais le grand jours arrive à grand pas j'aimerai réussir à créer ce fichier.

    Je vous remercie encore, et d'avance pour votre aide.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message

    Bonjour,

    Tout ceci n'est qu'un exemple. La table présente dans l'onglet Communes sert de validation pour le choix de la commune. L'onglet TCD montre l'exploitation qu'on peut faire des données.
    C'est à vous d'organiser vos données. Il faut seulement retrouver les étapes présentes dans l'onglet Paramètres dans le titre de la table des affaires si voulez que les affaires changent de statut.

  17. #17
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Très bien je ne me trompais pas sur ces onglets.

    Comment ce fait-il que lors que je supprime des colonnes, Excel bug puis plante ?

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Désolé, je ne pratique pas la boule de cristal.
    A partir de la ligne qui plante, il vous faut vérifier le contenu des variables en positionnant le curseur sur le nom des variables, mettre des Debug.Print pour vérifier la valeur des variables à certains endroits du code ou faire tourner le programme en mode pas à pas et mettre des espions.

  19. #19
    Membre averti
    Homme Profil pro
    Gestion Patrimoniale des Réseaux eau et assainissement
    Inscrit en
    Juillet 2019
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gestion Patrimoniale des Réseaux eau et assainissement

    Informations forums :
    Inscription : Juillet 2019
    Messages : 38
    Par défaut
    Oui bien-sur, excusez moi, une question mal présenté et sans information =)

    Je voudrais supprimer les colonnes en rouge mais lors de leur suppression le logiciel plante, auriez vous la raison ?

    Et c'est le même résultat lors que je tente de rajouter une ligne supplémentaire.

    je vous remercie d'avance de votre réponse.

    Exemple de suivi de chantier EK - Copie.xlsm

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Léo Bicounet Voir le message
    Il faut interdire le calcul de la fonction sur changement de la cellule Numéro de chantier et faire la comparaison de l'étape chantier avec une valeur String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If AireListeEtapes(I).Offset(0, 1) = AireEtapesChantiers(J) And CStr(AireEtapesChantiers(J).Offset(LigneChantier, 0)) <> "" Then

Discussions similaires

  1. Comment créer une routine txt ?
    Par DavidCohen dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 26/08/2019, 09h53
  2. [2010] Créer une routine ou une boucle macro Excel
    Par Léo Bicounet dans le forum Microsoft Office
    Réponses: 3
    Dernier message: 11/07/2019, 11h53
  3. créer une routine d'installation pour appli java avec netbeans
    Par dummygreg dans le forum NetBeans Platform
    Réponses: 3
    Dernier message: 23/07/2009, 23h12
  4. Comment créer une boucle ?
    Par kikica dans le forum Langage
    Réponses: 5
    Dernier message: 15/03/2006, 21h02
  5. [XSLT]créer une boucle
    Par fraoustin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/01/2005, 14h13

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