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 :

Problème de doublons dans une macro d'insertion


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Problème de doublons dans une macro d'insertion
    Bonjour,

    j'ai un classeur avec une macro d'insertion qui prend les infos de la première feuille "formulaire" pour les mettre dans l'autre "programme mensuel" en C25. Le problème c'est que ça fonctionne pour un jour férié mais dès que yen a 2 ou plusieurs il me rajoute le premier jour à chaque fois, c'est à cause du Range("A" & cel.Row) que j'ajoute mais il est obligatoire pour ajouter les autres jours. Pour résumer, j'ai le premier jour qui se double mais pas les suivants, donc je voudrais savoir si ya un moyen d'enlever ce doublon (genre une fonction de supression des valeurs double en vb) ou de pas prendre en compte deux fois la première valeur.

    Je vous joint le fichier (faites pas attention aux macros des autres feuilles et le petit activatesheet après c'est pour l'autre macro avec le userform).

    Merci par avance pour réponses.

    Le code vb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    derligne = Range("J65536").End(xlUp).Row
    Sheet3.Range("C25") = ""
    For Each cel In Range("C10:C" & derligne)
      If Left(cel.Value, 1) = "J" Then
        With Sheet3
          If .Range("C25") = "" Then .Range("C25") = Range("A" & cel.Row)
        If Range("K2") > 1 Then .Range("C25") = .Range("C25") & " / " & Range("A" & cel.Row)
        End With
      End If
    Next
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Je n'ai pas ouvert ton fichier (je n'ouvre jamais un xls non écrit par moi-même).

    Je ne suis par ailleurs (et du même coup) pas certain d'avoir compris tes explications, mais il semblerait (on dirait que oui) que tu doives modifier ta ligne disant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Range("K2") > 1 Then .Range("C25") = .Range("C25") & " / " & Range("A" & cel.Row)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("K2") > 1 and .Range("C25") <> "" Then .Range("C25") = .Range("C25") & " / " & Range("A" & cel.Row)
    Mais une autre fois : je ne suis pas certain d'avoir bien deviné....

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Et non !
    Salut ucfoutu, merci pour ta proposition mais hélas le problème persiste, ça ne fonctionne toujours pas, le doublon est toujours là grrrrrr !!!

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Eureka !
    Bon j'ai trouvé, le code fonctionnel est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
    derligne = Range("J65536").End(xlUp).Row
    Sheet3.Range("C25") = ""
    For Each cel In Range("C10:C" & derligne)
      If Left(cel.Value, 1) = "J" Then
        With Sheet3
         .Range("C25") = .Range("C25") & " / " & Range("A" & cel.Row)
        End With
      End If
    Next
    End Sub
    Il fallait simplement supprimer ce qui était inutile et rappellait une seconde fois la fonction.

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

Discussions similaires

  1. Problème de doublon dans une jointure
    Par kvkylian dans le forum Langage SQL
    Réponses: 7
    Dernier message: 18/07/2011, 12h37
  2. [XL-2007] Problème de codage dans une macro en VBA
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/12/2010, 17h32
  3. [XL-2003] problème formule #NOM? dans une macro
    Par VBA je te hais dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/09/2009, 15h43
  4. Problème de doublons dans une requète complexe
    Par noakiss dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/03/2008, 09h19
  5. problème de condition dans une macro
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 15/05/2006, 11h22

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