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 :

programmation boucle VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Par défaut programmation boucle VBA
    bonjour
    afin d'éviter des copier/coller je me lance dans le Vba
    je tourne en rond avec les boucles ..
    voici mon fichier Merci de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Par contre au lieu de placer un fichier, n'hésites surtout pas à Copier/coller le code qui te pose un problème en expliquant clairement ce qui ne vas pas. La ligne où cela plante etc...
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Mets la macro suivante dans un module standard et exécute-la :

    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
    Sub test()
        Dim UE() As String, Ctr As Integer, c As Range, Sh As Worksheet, Nom
        Dim x As Range
        With Sheets("CANDIDATS")
            Ctr = -1
            For Each c In .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
                If c.Value = "x" Then
                    Ctr = Ctr + 1
                    ReDim Preserve UE(Ctr)
                    UE(Ctr) = c.Offset(, -1)
                End If
            Next c
        End With
        With Sheets("PREVISIONNEL")
            For Each c In .[C7:AN37]
                For Each Nom In Array("DCG 1", "DCG 2", "DCG 3")
                    Set Sh = Sheets(Nom)
                    If Left(Sh.Range(c.Address).Value, 2) = "UE" Then
                        If IsNumeric(Application.Match(Sh.Range(c.Address), UE, 0)) Then
                            If c.Value <> "" Then
                                c.Value = "err"
                            Else
                                c.Value = Sh.Range(c.Address).Value
                            End If
                        End If
                    End If
                Next Nom
            Next c
        End With
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    ... ou, un peu plus rationnel :

    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
    Sub test()
        Dim UE() As String, Ctr As Integer, c As Range, Sh As Worksheet, Nom
        Dim x As Range
        With Sheets("CANDIDATS")
            Ctr = -1
            For Each c In .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
                If c.Value = "x" Then
                    Ctr = Ctr + 1
                    ReDim Preserve UE(Ctr)
                    UE(Ctr) = c.Offset(, -1)
                End If
            Next c
        End With
        With Sheets("PREVISIONNEL")
            For Each c In .[C7:AN37]
                For Each Sh In Sheets(Array("DCG 1", "DCG 2", "DCG 3"))
                    If Left(Sh.Range(c.Address).Value, 2) = "UE" Then
                        If IsNumeric(Application.Match(Sh.Range(c.Address), UE, 0)) Then
                            If c.Value <> "" Then
                                c.Value = "err"
                            Else
                                c.Value = Sh.Range(c.Address).Value
                            End If
                        End If
                    End If
                Next Sh
            Next c
        End With
    End Sub

  5. #5
    Membre régulier
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Par défaut remerciements
    bonjour
    en fait avec mon petit code il me manquait toujours une UE
    soit je bouclais mal soit je devait l'écraser soit je ne lisais pas les données
    mais le pire c'est que je ne voyais rien même avec la touche F8
    mais
    Haou!! j'ai encore beaucoup a apprendre, je vais faire un tour du côté des tutos et me connecter plus souvent
    encore merci

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Merci du retour. N'hésite pas à demander des explications sur ce que tu ne comprends pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de novice sur boucle vba
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/06/2007, 21h08
  2. programme en VBA
    Par sacr76 dans le forum Général VBA
    Réponses: 1
    Dernier message: 14/05/2007, 15h03
  3. Programme excel vba
    Par winieloursonaub dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/08/2006, 11h37
  4. [programmation] code VBA
    Par torNAdE dans le forum Access
    Réponses: 11
    Dernier message: 11/07/2006, 23h25
  5. séléction d'un ligne excel et boucle [vba]
    Par lou87 dans le forum Access
    Réponses: 2
    Dernier message: 06/06/2006, 11h00

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