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 :

Parcourir les cellules et gerer leur contenu vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut Parcourir les cellules et gerer leur contenu vba
    Bonjour,
    je me permets de vous écrire pour solliciter votre aide.
    je m'explique:

    j'ai un fichier (echantillon pour test) avec en colonne A la ident,colonne B la date ,colonne C immat,colonne D corporel(o/n),colonne E statut et en colonne F le %tage de resp
    ce que je veux faire c'est ça.
    - si j'ai la meme ident en A à la meme date en B avec la meme immat en C alors si en colonne D j'ai du O et N alors je mets tout en "O" sinon je laisse tel quel.
    et si en colonne E , j'ai le statut OPEN et Close alors je mets tout en OPEN sinon je laisse tel quel.
    ET si en colonne F, j'ai 2 resp qui sont differents je prend le plus grand partout.

    je fais ça pour toutes les lignes où j'ai une meme ident,meme date et meme immat.

    j'ai commencé à ecrire un code mais ça marche pas.
    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 Plage As Range, C As Range, Teste
    Dim Offset As Long
    Dim derlign, i, j, k As Integer
     
    derlign = Range("a65536").End(xlUp).Row
    'Plage = .Range(.[A1].Offset(i, 1), .Cells(.Rows.Count, 1 + i).End(xlUp))
    'With Sheets("New")
     
    For j = 2 To derlign + 1
     
    If Cells(j - 1, 1) = Cells(j, 1) And Cells(j - 1, 2) = Cells(j, 2) And Cells(j - 1, 3) = Cells(j, 3) Then
     
      If Cells(j - 1, 4).Value <> Cells(j, 4).Value Then Range("d" & j - 1).Value = "O" And Range("d" & j) = "O"
     
        End If
     
      If Cells(j - 1, 5).Value <> Cells(j, 5).Value Then Range("e" & j - 1).Value = "OPEN" And Range("e" & j).Value = "OPEN"
     
     
     
    If Cells(j - 1, 6).Value <> Cells(j, 6).Value Then Cells(j - 1, 6).Value = 100 And Cells(j, 4).Value = O
     
    End
     
    Next
     
     
    End Sub
    je vous joint le fichier pour plus d'explication
    merci de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Je n'ouvre pas les fichiers avec macros...

    Ici
    If Cells(j - 1, 1) = Cells(j, 1) And Cells(j - 1, 2) = Cells(j, 2) And Cells(j - 1, 3) = Cells(j, 3) Then
    If Cells(j - 1, 4).Value <> Cells(j, 4).Value Then Range("d" & j - 1).Value = "O" And Range("d" & j) = "O" End If
    Tu ne peux pas mettre ce AND
    Essaie plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Cells(j - 1, 1) = Cells(j, 1) And Cells(j - 1, 2) = Cells(j, 2) And Cells(j - 1, 3) = Cells(j, 3) Then
      If Cells(j - 1, 4).Value <> Cells(j, 4).Value Then 
          Range("d" & j - 1).Value = "O" 
          Range("d" & j) = "O"
      End If
    End If

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut
    Merci parmi pour l'intervention.
    pour info j'ai enlever les macro dans le fichier
    pour vérifier la 2 eme et la 3 eme condition c'est la ou je bloque.
    je renvoi le fichier sans macro
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu n'as qu'à utiliser la même méthode que je t'ai mise pour la 1ere condition.
    Enlève le AND et mets tes résultats sur plusieurs lignes.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut
    Bonsoir
    j ai fait comme tu as dit mais sa l fait que pour la colonne D mais rien en E et F.
    en plus il ne fait rien sur les suivantes.
    merci de votre aide

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bon, essaie comme ceci et essaie de comprendre ce que ça fait.


    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
    Sub test()
        Dim derlign As Long, j As Long
        Dim Valeur
     
        derlign = Range("a65536").End(xlUp).Row
     
        For j = 2 To derlign + 1
            If Cells(j - 1, 1) = Cells(j, 1) And Cells(j - 1, 2) = Cells(j, 2) And Cells(j - 1, 3) = Cells(j, 3) Then
                If Cells(j - 1, 4).Value <> Cells(j, 4).Value Then
                    Range("d" & j - 1).Value = "O"
                    Range("d" & j) = "O"
                End If
                If Cells(j - 1, 5).Value <> Cells(j, 5).Value Then
                    Range("e" & j - 1).Value = "OPEN"
                    Range("e" & j).Value = "OPEN"
                End If
                If Cells(j - 1, 6).Value <> Cells(j, 6).Value Then
                    Valeur = Application.WorksheetFunction.Max(Cells(j - 1, 6).Value, Cells(j, 6).Value)
                    Range("f" & j - 1).Value = Valeur
                    Range("f" & j).Value = Valeur
                End If
            End If
        Next
    End Sub

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

Discussions similaires

  1. [XL-2003] masquer les colonnes dont toutes les cellules VISIBLES ont leur valeur="N"
    Par sylvaine dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 04/03/2011, 11h57
  2. Parcourir les cellules....
    Par nexusflame dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/04/2010, 11h44
  3. [XL-2007] parcourir les cellules d'une colonne à l'aide d'un index
    Par jolinon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2009, 17h55
  4. Réponses: 5
    Dernier message: 28/02/2008, 08h44
  5. Regrouper les cellules qui ont un contenu identique
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/01/2008, 14h26

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