Problème de macro d'insertion

guilo49

XLDnaute Nouveau
Problème de doublon 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:
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
 

Pièces jointes

  • Janvier10.zip
    29.4 KB · Affichages: 22
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : Problème de macro d'insertion

Bonjour guilo49 et le forum,

Peut-être une modification du code comme suit :

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
 

guilo49

XLDnaute Nouveau
Re : Problème de macro d'insertion

Ah oui en effet tu as raison la ligne
Code:
If .Range("C25") = "" Then .Range("C25") = Range("A" & cel.Row)
était inutile et rappelait une deuxième fois l'intégration de ce qu'il y a en colonne A. En fait c'était tout con mais fallait le trouver. J'avais déjà essayé en supprimant la première occurrence mais j'avais laissé
Code:
If .Range("C25") = "" Then .Range("C25") = .Range("C25") & " / " & Range("A" & cel.Row)
du coup la macro ne fonctionnait plus.

Merci de m'avoir éclairé !

Bonne continuation à tous et au forum.:)
 

Discussions similaires

Réponses
1
Affichages
159
Réponses
7
Affichages
312

Statistiques des forums

Discussions
312 078
Messages
2 085 123
Membres
102 783
dernier inscrit
Basoje