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 :

imbriquer des for each


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 49
    Par défaut imbriquer des for each
    bonjour,
    Je souhaite enrichir mon code en:

    mettant les deux premières colonnes en majuscules et concaténer dans la colonne c (sans espace). Mais je ne parviens pas à faire ça à partir de mon code de départ (je suis débutante )

    Voici mon code, merci pour votre aide
    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
    Sub Reporter()
    Dim Sh As Worksheet
     
    Dim LastLig As Long, NewLig As Long
    Dim c As Range
    Dim Valeur As String
     
     
    Valeur = InputBox("Entrée période", "Choix de la période")
    If Valeur <> "" Then
    Application.ScreenUpdating = False
    With Workbooks("2010 STD Activities status.xls").Sheets("2010")
       .AutoFilterMode = False
       LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
       With .Range("A4:X" & LastLig)
          .AutoFilter field:=17, Criteria1:=Valeur
          .AutoFilter field:=24, Criteria1:=">0"
       End With
       If .Range("A4:A" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
          Set Sh = Worksheets("datas")
          NewLig = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Row + 3
          For Each c In .Range("A5:A" & LastLig).SpecialCells(xlCellTypeVisible)
             Sh.Cells(NewLig, 1).Value = .Cells(c.Row, 7).Value
             Sh.Cells(NewLig, 2).Value = .Cells(c.Row, 8).Value
             Sh.Cells(NewLig, 5).Value = .Cells(c.Row, 10).Value
             Sh.Cells(NewLig, 7).Value = .Cells(c.Row, 12).Value
             Sh.Cells(NewLig, 15).Value = .Cells(c.Row, 17).Value
             Sh.Cells(NewLig, 11).Value = .Cells(c.Row, 24).Value
             NewLig = NewLig + 1
     
     
          Next c
          Set Sh = Nothing
          .AutoFilterMode = False
       End If
    End With
    End If
    End Sub

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut valeurs
    Bonjour Delphine,

    En adaptant, car je n'ai pas repris l'ensemble de ton code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub essai()
    Lastlig = 50
    For Each c In Range("C2:C" & Lastlig).SpecialCells(xlCellTypeVisible)
             c.Value = UCase(c.Offset(0, -2).Value) & UCase(c.Offset(0, -2).Value)
    Next c
     
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 49
    Par défaut
    merci bcp pour ta réponse
    mais mon plus gros problème est de mettre plusieurs code dans un.
    Je ne sais pas vraiment ou je dois le mettre dans mon code.

    Merci pour ta réponse
    Bonne soirée

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut concaténation
    Bonjour le Forum, Bonjour Delphine,

    Si ta concaténation concerne la 3ème colonne de ta feuille "datas", alors tu peux insérer dans ta boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh.Cells(NewLig, 3).Value = UCase(Sh.Cells(NewLig, 1).Value) & UCase(Sh.Cells(NewLig, 1).Value)
    ce qui dans son contexte donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
     
    Sh.Cells(NewLig, 1).Value = .Cells(c.Row, 7).Value
    Sh.Cells(NewLig, 2).Value = .Cells(c.Row, 8).Value
    Sh.Cells(NewLig, 3).Value = UCase(Sh.Cells(NewLig, 1).Value) & UCase(Sh.Cells(NewLig, 1).Value)
    Sh.Cells(NewLig, 5).Value = .Cells(c.Row, 10).Value
     
    ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 49
    Par défaut
    bonjour à tous, ça fonctionne super bien

    j'ai juste changer dans le newlig n°3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UCase(Sh.Cells(NewLig, 1).Value)
    j'ai modifier le 1 par 2 (car je veux concaténer la colonne A et B

    Encore merci!!

    Bonne journée

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

Discussions similaires

  1. [XL-2007] double condition (avec des for each)
    Par FloFlosu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2011, 11h32
  2. [XSLT] for-each imbriqué
    Par mouna201 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 28/09/2010, 02h00
  3. Réponses: 7
    Dernier message: 09/04/2009, 09h34
  4. [XSLT] Fusionner des for-each
    Par bslota dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 18/07/2007, 10h13
  5. Boucle imbriquée avec for each et while
    Par guen dans le forum Access
    Réponses: 7
    Dernier message: 01/03/2007, 17h36

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