OVH Cloud OVH Cloud

macro de michdenis: probleme?

33 réponses
Avatar
rick
Bonjour,

La macro de michdenis, me permet de detecter des doublons, quand j'importe
des données sur feuille, la macro se lance et permet de verifier les
différents doublons suivant la combinaisons de 5 colonnes.

le probleme est que je souhaite, si un doublon est détecté lors de l'import
écraser la ligne déja existante quand je repond oui au message(desirez vous
ecraser la ligne?).

J'ai essayé de faire une modif, mais le probleme par exemple, quand sur ma
ligne 15 j'ai une ligne , et quand je vient faire l'import de la meme ligne
j'ai la macro qui se lance , je choisit oui dans mon message: désirez vous
écraser la ligne.
La ligne est effacé mais pas écrasé à la meme ligne, c'est a dire que je me
retrouve avec la ligne 15 à vide et la ligne 16 avec les bonnes données.

Savez vous comment faire pour écraser cette ligne 15, si le doublon est
détecté.
c'est a dire avoir les nouvelle données sur la ligne 15.(ecraser l'ancienne
donnée)

ci-joint l'aperçu de la macro:
Sub doublons()
Dim K As Integer, A As Integer
Dim rg As Range, P As Integer
Dim NomFeuille As String

NomFeuille = "Feuil1" 'à déterminer

Application.EnableEvents = False
'Concatenation des colonnes D, E, H, I, P dans la colonne IV
With Worksheets(NomFeuille)
Set rg = .Range("IV15:IV400")
rg.FormulaLocal = _
"=" & UCase(.Range("$D15").Address(0, 0)) & _
"&" & UCase(.Range("$E15").Address(0, 0)) & "&" _
& UCase(.Range("$H15").Address(0, 0)) _
& "&" & UCase(.Range("$I15").Address(0, 0)) & _
"&" & UCase(.Range("$P15").Address(0, 0))
'substitution des formules pour leurs valeurs, dans la colonne HK:HK
rg.Value = rg.Value
'dans la colonne IU,place la formule suivante
'qui identifie le numero de lignes.ceci dans le but de remettre le
tableau àla
'fin dans le meme ordre de tri,en se basant sur cette colonne
rg.Offset(, -1).Formula = "=row()"
'Transforme la formule de la colonne en sa valeur
rg.Offset(, -1).Value = rg.Offset(, -1).Value
'premier tri de la colonne IU pour regrouper les doublons les un avec
les autres
rg.Offset(, -255).Resize(, 256).Sort Key1:=rg(2, 1)
End With
'Boucle qui teste chacune des cellules de la colonnes IU
'selon le choix de l'utilisateur, affecter une lettre au doublon ou
supprimer ces doublons

Do While rg(K + 1, 1).Row < rg.Row + rg.Rows.Count
A = WorksheetFunction.CountIf(rg, rg(K + 1, 1))
If A > 1 Then
'si a>1, il ya doublons

'cette ligne permet de sélectionner la plage ou sont les doublons pour
permettre à l'utilisateur
'de les visionner
Application.GoTo Range("A" & rg(K + 1, 1).Offset(-2).Row), True
rg(K + 1, 1).Resize(A).EntireRow.Select
'le message d'alerte
If MsgBox("il y a des " & A - 1 & " doublon(s) dans la ligne" _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"désirez vous écraser cette ligne ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then

rg(K + 1).EntireRow.ClearContents

Merci d'avance

10 réponses

1 2 3 4
Avatar
rick
attend misange t'exagere, j'ai pas arreté de remercie les personne qui ont pu
m'aider à ce forum.
et d'ailleurs je suis leur conseil, car j'ai recuperer des macro sur le site
d'excel labo, et de frederic sigonneau, et j'essaie toujours de comprend re
leur macro, car je demande souvent des commentaires, pour pouvoir les adapter
à mes autres macro, et je leur dit toujours merci,

alors stp n'exagere pas, je susi tres reconnaisant, et grace a vous,
j'apprend de jour en jour de nouvelle chose, j'ai meme acheté dernièrement un
livre sur VBA, mais je suis pas encore expérimentéé à 200%

mais si tu peux voir sur certains fils, je donne des réponse à ceux qui ont
des petit soucis.
alors voila et arreteé de m'insulter, c'est un forum pour s'echanger, et
c'est ce que je fait

merci



je sait que la modif doit se faire sur cette ligne de macro:
rg(K + 1).EntireRow.ClearContents



Tu ne comprends toujours pas pourquoi personne ne veux plus t'aider Rick
? Ton "je sait" (faute d'orthographe = copyright
Urgent-testou-Hali-Phil-Rick qui ne se connaissent pas entre eux) puis le
mais je n'y arrive pas
as tu une idée?
Ont de quoi désespérer ceux qui ont essayé de t'aider. C'est comme s'il

n'y avait que toi au monde.

La seule chose que tu veux c'est qu'on t'écrive tes macros et que
celles-ci fassent exactement ce que tu as demandé, pour le N° de ligne
que tu veux et pas une autre. Rien d'autre ne t'intéresse, les conseils
que les uns et les autres ont essayé de te donner pour t'aider ne
t'intéressent absolument pas. Tu n'as même pas un mot pour signifier que
tu les as lus.
Tu n'as toujours pas compris quel était l'esprit de ce forum, la notion
d'AIDE t'est inaccessible, tu veux juste qu'on te FOURNISSE. Tu n'as
même pas daigné utiliser les outils qu'on te recommandait pour suivre le
forum de façon plus efficace et conviviale.
Il y a de quoi dégouter les plus acharnés.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta






Avatar
jps
cesse de jouer au con, rick (bis) : misange ne t'a pas insulté et tu as beau
dire ce que tu veux pour te défendre, ce qu'a dit flo est tout sauf
inexact...
moi, ce qui m'intéresse là-dedans, c'est de savoir sous quelle forme tu vas
remercier michdenis, comme tu dis, pour l'immense travail qu'il a fait à ta
place car si toi, tu es payé pour cette application-mystère, lui ne l'est
pas et si comme seul compliment, tu n'as qu"un bref et sec "ça ne marche
pas" à lui offrir, avoue que ce n'est pas gras...
jps

"rick" a écrit dans le message de
news:
attend misange t'exagere, j'ai pas arreté de remercie les personne qui ont
pu

m'aider à ce forum.
et d'ailleurs je suis leur conseil, car j'ai recuperer des macro sur le
site

d'excel labo, et de frederic sigonneau, et j'essaie toujours de comprend
re

leur macro, car je demande souvent des commentaires, pour pouvoir les
adapter

à mes autres macro, et je leur dit toujours merci,

alors stp n'exagere pas, je susi tres reconnaisant, et grace a vous,
j'apprend de jour en jour de nouvelle chose, j'ai meme acheté dernièrement
un

livre sur VBA, mais je suis pas encore expérimentéé à 200%

mais si tu peux voir sur certains fils, je donne des réponse à ceux qui
ont

des petit soucis.
alors voila et arreteé de m'insulter, c'est un forum pour s'echanger, et
c'est ce que je fait

merci



je sait que la modif doit se faire sur cette ligne de macro:
rg(K + 1).EntireRow.ClearContents



Tu ne comprends toujours pas pourquoi personne ne veux plus t'aider Rick
? Ton "je sait" (faute d'orthographe = copyright
Urgent-testou-Hali-Phil-Rick qui ne se connaissent pas entre eux) puis
le


mais je n'y arrive pas
as tu une idée?
Ont de quoi désespérer ceux qui ont essayé de t'aider. C'est comme s'il

n'y avait que toi au monde.

La seule chose que tu veux c'est qu'on t'écrive tes macros et que
celles-ci fassent exactement ce que tu as demandé, pour le N° de ligne
que tu veux et pas une autre. Rien d'autre ne t'intéresse, les conseils
que les uns et les autres ont essayé de te donner pour t'aider ne
t'intéressent absolument pas. Tu n'as même pas un mot pour signifier que
tu les as lus.
Tu n'as toujours pas compris quel était l'esprit de ce forum, la notion
d'AIDE t'est inaccessible, tu veux juste qu'on te FOURNISSE. Tu n'as
même pas daigné utiliser les outils qu'on te recommandait pour suivre le
forum de façon plus efficace et conviviale.
Il y a de quoi dégouter les plus acharnés.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta








Avatar
Misange
attend misange t'exagere, j'ai pas arreté de remercie les personne qui ont pu
m'aider à ce forum.


C'est un tout petit peu agaçant vois tu :
je te dis:
"je te mets sur la piste, la ligne à modifier c'est celle-ci..."
et dans le poste suivant, tu dis
"je sait que la ligne à modifer c'est..."
Alors si t'appelles ça remercier les gens de leur aide, moi pas. Dire
merci en fin de message uniquement parce que tu as fini par comprendre
que sinon tu étais complètement blacklisté ici, c'est ps tout à fait ce
que j'entends par remercier les gens.


et d'ailleurs je suis leur conseil, car j'ai recuperer des macro sur le site
d'excel labo,


EXCELABO en un seul mot, avec un seul L. Celui qui a deux ailes c'est
Laurent Longre. Je ne suis qu'une MI-(s)Ange, je n'ai donc qu'une aile.

Sur excelabo, on t'a au moins dit 20 fois d'aller lire la page connexion
et de faire en sorte de lire le forum avec outlook express. Que tu ne
puisse pas le faire du boulot passe encore mais de chez toi tu pourrais.
Que ce ne soit pas confortable pour toi de lire le forum sur le web, on
s'en moquerait éperdument si ça ne t'incitait pas à reposter 20 fois les
mêmes questions.


et de frederic sigonneau, et j'essaie toujours de comprend re
leur macro, car je demande souvent des commentaires, pour pouvoir les adapter
à mes autres macro, et je leur dit toujours merci,


Et prendre les gens pour des idiots c'est leur dire merci ? Changer de
pseudo tous les 15 jours et dire que tu n'as jamais entendu parler de
Testou ou de Phil c'est respecter les intervenants du forum ? Traire la
vache pour en tirer tout le lait, ça tu sais faire. S'il faut dire merci
pour qu'elle t'en donne encore un litre, tu le fais mais ta
reconnaissance des autres s'arrête là.

Personne sur ce forum n'a été jeté parce qu'il avait du mal à
comprendre. Mais encore faut-il poser des questions qui soient de son
niveau. Je n'irai pas demander à un physicien de m'expliquer en détail
des formules de physique quantique. Franchement, je ne dois pas être la
seule à penser que tu veux aller sur la lune sans avoir seulement essayé
d'aller d'abord jusqu'à la ville à côté : commence par faire des choses
simples. Quand tu les maîtriseras complètement, tout seul, que tu seras
capable de les adapter à un problème légèrement différent, alors passe
l'étape suivante. Mais n'essaie pas d'emblée de développer un truc avec
20 formulaires, 40 pages et je ne sais pas combien de génération de
nouveaux classeurs.

On t'a très souvent demandé de commencer par expliquer l'objectif global
de ce que tu voulais faire. Au lieu de ça, tu postes des petits bouts de
machins que tu compliques au fil des réponses qu'on te donne et ça se
termine par une usine à gaz qui ne fait jamais ce que tu souhaites et
qui n'a plus aucune chance de fonctionner avec le restant de tes autres
macros dans le même classeur.


alors stp n'exagere pas, je susi tres reconnaisant, et grace a vous,
j'apprend de jour en jour de nouvelle chose, j'ai meme acheté dernièrement un
livre sur VBA, mais je suis pas encore expérimentéé à 200%

mais si tu peux voir sur certains fils, je donne des réponse à ceux qui ont
des petit soucis.
alors voila et arreteé de m'insulter, c'est un forum pour s'echanger, et
c'est ce que je fait


Pardon ??? je t'ai insulté ? Tu as une notion d'échange qui est bien
particulière. Si pour toi échanger ça consiste à harceler le forum en
posant 20 fois la même question, à reprendre sans fin les mêmes macros,
en changeant à chaque fois un peu les conditions de la macro ou ce
qu'elle doit faire, et bien ce n'est pas ma conception.

Salut et surement pas à bientôt. Tu sais qu'il y a d'autres excellents
forums sur le net ? bien meilleurs que celui-ci, avec des gens bien
moins regardants sur la politesse et qui n'ont pas développé une
allergie contre tes manières ? Tu serais bien inspiré de prendre les
conseils de comportement qu'on t'a donné ici et d'essayer de les
appliquer ailleurs.


merci

Misange migrateuse http://www.excelabo.net

mail : http://cerbermail.com/?k5Q8Dh2mta

Avatar
Thierry
Bonjour le forum !

Je supplie à genoux twinley, clément, jps, misange et consorts de ne
surtout pas décourager le dénommé rick, alias Urgent-testou-Hali-Phil ni
d'ailleurs l'exceptionnel michdenis sans la patience duquel ce
fantastique feuilleton n'apporterait plus chaque jour sa ration
d'adrénaline et de suspense..!!
Depuis environ 1 mois que je fréquente ce forum, chaque matin mon coeur
bat à l'idée de découvrir un nouveau post de l'inénarrable Rick ainsi
que les non moins inénarrables réponses de contributeurs courroucés !!

Merci donc à Rick de me permettre d'apprendre les plus belles et les
plus imagées des insultes québécoises (merci clément) :-))))))))

J'espère que Rick ne tiendra pas compte du weekend de l'Ascension et
continuera donc de harceler le forum (pauvre michdenis!!)

Heureux les simples d'esprit, le royaume etc.....

@+thierryp :-)))

Bonjour,

La macro de michdenis, me permet de detecter des doublons, quand j'importe
des données sur feuille, la macro se lance et permet de verifier les
différents doublons suivant la combinaisons de 5 colonnes.

le probleme est que je souhaite, si un doublon est détecté lors de l'import
écraser la ligne déja existante quand je repond oui au message(desirez vous
ecraser la ligne?).

J'ai essayé de faire une modif, mais le probleme par exemple, quand sur ma
ligne 15 j'ai une ligne , et quand je vient faire l'import de la meme ligne
j'ai la macro qui se lance , je choisit oui dans mon message: désirez vous
écraser la ligne.
La ligne est effacé mais pas écrasé à la meme ligne, c'est a dire que je me
retrouve avec la ligne 15 à vide et la ligne 16 avec les bonnes données.

Savez vous comment faire pour écraser cette ligne 15, si le doublon est
détecté.
c'est a dire avoir les nouvelle données sur la ligne 15.(ecraser l'ancienne
donnée)

ci-joint l'aperçu de la macro:
Sub doublons()
Dim K As Integer, A As Integer
Dim rg As Range, P As Integer
Dim NomFeuille As String

NomFeuille = "Feuil1" 'à déterminer

Application.EnableEvents = False
'Concatenation des colonnes D, E, H, I, P dans la colonne IV
With Worksheets(NomFeuille)
Set rg = .Range("IV15:IV400")
rg.FormulaLocal = _
"=" & UCase(.Range("$D15").Address(0, 0)) & _
"&" & UCase(.Range("$E15").Address(0, 0)) & "&" _
& UCase(.Range("$H15").Address(0, 0)) _
& "&" & UCase(.Range("$I15").Address(0, 0)) & _
"&" & UCase(.Range("$P15").Address(0, 0))
'substitution des formules pour leurs valeurs, dans la colonne HK:HK
rg.Value = rg.Value
'dans la colonne IU,place la formule suivante
'qui identifie le numero de lignes.ceci dans le but de remettre le
tableau àla
'fin dans le meme ordre de tri,en se basant sur cette colonne
rg.Offset(, -1).Formula = "=row()"
'Transforme la formule de la colonne en sa valeur
rg.Offset(, -1).Value = rg.Offset(, -1).Value
'premier tri de la colonne IU pour regrouper les doublons les un avec
les autres
rg.Offset(, -255).Resize(, 256).Sort Key1:=rg(2, 1)
End With
'Boucle qui teste chacune des cellules de la colonnes IU
'selon le choix de l'utilisateur, affecter une lettre au doublon ou
supprimer ces doublons

Do While rg(K + 1, 1).Row < rg.Row + rg.Rows.Count
A = WorksheetFunction.CountIf(rg, rg(K + 1, 1))
If A > 1 Then
'si a>1, il ya doublons

'cette ligne permet de sélectionner la plage ou sont les doublons pour
permettre à l'utilisateur
'de les visionner
Application.GoTo Range("A" & rg(K + 1, 1).Offset(-2).Row), True
rg(K + 1, 1).Resize(A).EntireRow.Select
'le message d'alerte
If MsgBox("il y a des " & A - 1 & " doublon(s) dans la ligne" _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"désirez vous écraser cette ligne ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then

rg(K + 1).EntireRow.ClearContents

Merci d'avance


Avatar
Misange
Bonjour Thierry
On est quelques uns à fréquenter ce forum depuis de nombreuses années et
à ne pas partager ton amusement. Autant on a pu déconner et se payer
de franches rigolades ENSEMBLE dans le passé, autant ce genre
d'amusements au dépens d'un hurluberlu ou d'un troll est sans aucun intérêt.
Les expressions québécoises ont eu de nombreuses occasions de se
dévoiler dans d'autres circonstances, plus sympas.
Mettre de l'huile sur le feu a juste pour effet de dégouter ceux qui
viennent ici pour la convivialité. J'imagine bien que tu parles au
second degré mais justement certains ne comprennent déjà pas le premier
degré alors... évite !


Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 05/05/2005 19:00, :
Bonjour le forum !

Je supplie à genoux twinley, clément, jps, misange et consorts de ne
surtout pas décourager le dénommé rick, alias Urgent-testou-Hali-Phil ni
d'ailleurs l'exceptionnel michdenis sans la patience duquel ce
fantastique feuilleton n'apporterait plus chaque jour sa ration
d'adrénaline et de suspense..!!
Depuis environ 1 mois que je fréquente ce forum, chaque matin mon coeur
bat à l'idée de découvrir un nouveau post de l'inénarrable Rick ainsi
que les non moins inénarrables réponses de contributeurs courroucés !!

Merci donc à Rick de me permettre d'apprendre les plus belles et les
plus imagées des insultes québécoises (merci clément) :-))))))))

J'espère que Rick ne tiendra pas compte du weekend de l'Ascension et
continuera donc de harceler le forum (pauvre michdenis!!)

Heureux les simples d'esprit, le royaume etc.....

@+thierryp :-)))


Bonjour,
La macro de michdenis, me permet de detecter des doublons, quand
j'importe des données sur feuille, la macro se lance et permet de
verifier les différents doublons suivant la combinaisons de 5 colonnes.
le probleme est que je souhaite, si un doublon est détecté lors de
l'import écraser la ligne déja existante quand je repond oui au
message(desirez vous ecraser la ligne?).
J'ai essayé de faire une modif, mais le probleme par exemple, quand
sur ma ligne 15 j'ai une ligne , et quand je vient faire l'import de
la meme ligne j'ai la macro qui se lance , je choisit oui dans mon
message: désirez vous écraser la ligne. La ligne est effacé mais pas
écrasé à la meme ligne, c'est a dire que je me retrouve avec la ligne
15 à vide et la ligne 16 avec les bonnes données.
Savez vous comment faire pour écraser cette ligne 15, si le doublon
est détecté. c'est a dire avoir les nouvelle données sur la ligne
15.(ecraser l'ancienne donnée)
ci-joint l'aperçu de la macro: Sub doublons() Dim K As Integer, A As
Integer Dim rg As Range, P As Integer Dim NomFeuille As String
NomFeuille = "Feuil1" 'à déterminer
Application.EnableEvents = False 'Concatenation des colonnes D, E, H,
I, P dans la colonne IV With Worksheets(NomFeuille) Set rg =
.Range("IV15:IV400") rg.FormulaLocal = _ "=" &
UCase(.Range("$D15").Address(0, 0)) & _ "&" &
UCase(.Range("$E15").Address(0, 0)) & "&" _ &
UCase(.Range("$H15").Address(0, 0)) _ & "&" &
UCase(.Range("$I15").Address(0, 0)) & _ "&" &
UCase(.Range("$P15").Address(0, 0)) 'substitution des formules
pour leurs valeurs, dans la colonne HK:HK rg.Value = rg.Value
'dans la colonne IU,place la formule suivante 'qui identifie le
numero de lignes.ceci dans le but de remettre le tableau àla 'fin
dans le meme ordre de tri,en se basant sur cette colonne
rg.Offset(, -1).Formula = "=row()" 'Transforme la formule de la
colonne en sa valeur rg.Offset(, -1).Value = rg.Offset(, -1).Value
'premier tri de la colonne IU pour regrouper les doublons les un
avec les autres rg.Offset(, -255).Resize(, 256).Sort Key1:=rg(2,
1) End With 'Boucle qui teste chacune des cellules de la colonnes IU
'selon le choix de l'utilisateur, affecter une lettre au doublon ou
supprimer ces doublons
Do While rg(K + 1, 1).Row < rg.Row + rg.Rows.Count A =
WorksheetFunction.CountIf(rg, rg(K + 1, 1)) If A > 1 Then 'si
a>1, il ya doublons 'cette ligne permet de sélectionner la
plage ou sont les doublons pour permettre à l'utilisateur 'de les
visionner Application.GoTo Range("A" & rg(K + 1,
1).Offset(-2).Row), True rg(K + 1,
1).Resize(A).EntireRow.Select 'le message d'alerte If
MsgBox("il y a des " & A - 1 & " doublon(s) dans la ligne" _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"désirez vous écraser cette ligne ? ", _ vbCritical +
vbYesNo, "Doublons") = vbYes Then rg(K +
1).EntireRow.ClearContents Merci d'avance




Avatar
Thierry
Je ne savais qu'il fallait un certificat d'ancienneté pour avoir le
droit de faire un peu d'humour...Effectivement, comme tu l'as finement
remarqué, c'était au second degré.

Sans rancune et au passage toutes mes félicitations pour ton site (non
,non ce n'est pas de la basse flagornerie pour me faire pardonner.. de
quoi d'ailleurs ??)

@+ thierryp :-)))

Bonjour Thierry
On est quelques uns à fréquenter ce forum depuis de nombreuses années et
à ne pas partager ton amusement. Autant on a pu déconner et se payer
de franches rigolades ENSEMBLE dans le passé, autant ce genre
d'amusements au dépens d'un hurluberlu ou d'un troll est sans aucun
intérêt.
Les expressions québécoises ont eu de nombreuses occasions de se
dévoiler dans d'autres circonstances, plus sympas.
Mettre de l'huile sur le feu a juste pour effet de dégouter ceux qui
viennent ici pour la convivialité. J'imagine bien que tu parles au
second degré mais justement certains ne comprennent déjà pas le premier
degré alors... évite !


Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 05/05/2005 19:00, :

Bonjour le forum !

Je supplie à genoux twinley, clément, jps, misange et consorts de ne
surtout pas décourager le dénommé rick, alias Urgent-testou-Hali-Phil
ni d'ailleurs l'exceptionnel michdenis sans la patience duquel ce
fantastique feuilleton n'apporterait plus chaque jour sa ration
d'adrénaline et de suspense..!!
Depuis environ 1 mois que je fréquente ce forum, chaque matin mon
coeur bat à l'idée de découvrir un nouveau post de l'inénarrable Rick
ainsi que les non moins inénarrables réponses de contributeurs
courroucés !!

Merci donc à Rick de me permettre d'apprendre les plus belles et les
plus imagées des insultes québécoises (merci clément) :-))))))))

J'espère que Rick ne tiendra pas compte du weekend de l'Ascension et
continuera donc de harceler le forum (pauvre michdenis!!)

Heureux les simples d'esprit, le royaume etc.....

@+thierryp :-)))


Bonjour,
La macro de michdenis, me permet de detecter des doublons, quand
j'importe des données sur feuille, la macro se lance et permet de
verifier les différents doublons suivant la combinaisons de 5 colonnes.
le probleme est que je souhaite, si un doublon est détecté lors de
l'import écraser la ligne déja existante quand je repond oui au
message(desirez vous ecraser la ligne?).
J'ai essayé de faire une modif, mais le probleme par exemple, quand
sur ma ligne 15 j'ai une ligne , et quand je vient faire l'import de
la meme ligne j'ai la macro qui se lance , je choisit oui dans mon
message: désirez vous écraser la ligne. La ligne est effacé mais pas
écrasé à la meme ligne, c'est a dire que je me retrouve avec la ligne
15 à vide et la ligne 16 avec les bonnes données.
Savez vous comment faire pour écraser cette ligne 15, si le doublon
est détecté. c'est a dire avoir les nouvelle données sur la ligne
15.(ecraser l'ancienne donnée)
ci-joint l'aperçu de la macro: Sub doublons() Dim K As Integer, A As
Integer Dim rg As Range, P As Integer Dim NomFeuille As String
NomFeuille = "Feuil1" 'à déterminer
Application.EnableEvents = False 'Concatenation des colonnes D, E, H,
I, P dans la colonne IV With Worksheets(NomFeuille) Set rg =
.Range("IV15:IV400") rg.FormulaLocal = _ "=" &
UCase(.Range("$D15").Address(0, 0)) & _ "&" &
UCase(.Range("$E15").Address(0, 0)) & "&" _ &
UCase(.Range("$H15").Address(0, 0)) _ & "&" &
UCase(.Range("$I15").Address(0, 0)) & _ "&" &
UCase(.Range("$P15").Address(0, 0)) 'substitution des formules
pour leurs valeurs, dans la colonne HK:HK rg.Value = rg.Value
'dans la colonne IU,place la formule suivante 'qui identifie le
numero de lignes.ceci dans le but de remettre le tableau àla 'fin
dans le meme ordre de tri,en se basant sur cette colonne
rg.Offset(, -1).Formula = "=row()" 'Transforme la formule de la
colonne en sa valeur rg.Offset(, -1).Value = rg.Offset(,
-1).Value 'premier tri de la colonne IU pour regrouper les
doublons les un avec les autres rg.Offset(, -255).Resize(,
256).Sort Key1:=rg(2, 1) End With 'Boucle qui teste chacune des
cellules de la colonnes IU 'selon le choix de l'utilisateur, affecter
une lettre au doublon ou supprimer ces doublons
Do While rg(K + 1, 1).Row < rg.Row + rg.Rows.Count A =
WorksheetFunction.CountIf(rg, rg(K + 1, 1)) If A > 1 Then 'si
a>1, il ya doublons 'cette ligne permet de sélectionner la
plage ou sont les doublons pour permettre à l'utilisateur 'de les
visionner Application.GoTo Range("A" & rg(K + 1,
1).Offset(-2).Row), True rg(K + 1,
1).Resize(A).EntireRow.Select 'le message d'alerte If
MsgBox("il y a des " & A - 1 & " doublon(s) dans la ligne" _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"désirez vous écraser cette ligne ? ", _ vbCritical +
vbYesNo, "Doublons") = vbYes Then rg(K +
1).EntireRow.ClearContents Merci d'avance






Avatar
Misange
oups des trucs bizarres dans les copier coller !

d'autant plus curieux que le message enregistré chez moi était correct.
Il faut donc lire dans les deux paragraphes illisbles :

Sur excelabo, on t'a au moins dit 20 fois d'aller lire la page connexion
et de faire en sorte de lire le forum avec outlook express. Que tu ne
puisse pas le faire du boulot passe encore mais de chez toi tu pourrais.
Que ce ne soit pas confortable pour toi de lire le forum sur le web, on
s'en moquerait éperdument si ça ne t'incitait pas à reposter 20 fois les
mêmes questions.


et de frederic sigonneau, et j'essaie toujours de comprend re

leur macro, car je demande souvent des commentaires, pour pouvoir les
adapter à mes autres macro, et je leur dit toujours merci,



Et prendre les gens pour des idiots c'est leur dire merci ? Changer de
pseudo tous les 15 jours et dire que tu n'as jamais entendu parler de
Testou ou de Phil c'est respecter les intervenants du forum ? Traire la
vache pour en tirer tout le lait, ça tu sais faire. S'il faut dire merci
pour qu'elle t'en donne encore un litre, tu le fais mais ta
reconnaissance des autres s'arrête là.

Avatar
rick
ARRANGE TOI TOUT SEUL ET VA-T-EN AU DIABLE MAUDIT PARASITE.
comment appelle tu ca.
Moi j'appelle ceci une insulte, et je vait dire un truc plus on m'insulte et
je parle surtout pour clement, plus franchement le dieu le punira de toute
les insulte qui peut sortir, ce que j'espère tres fortement.
Attention,a ton destin,plus tu m'insulte plus tu ne rencontrera que du
malheur autour de toi




oups des trucs bizarres dans les copier coller !

d'autant plus curieux que le message enregistré chez moi était correct.
Il faut donc lire dans les deux paragraphes illisbles :

Sur excelabo, on t'a au moins dit 20 fois d'aller lire la page connexion
et de faire en sorte de lire le forum avec outlook express. Que tu ne
puisse pas le faire du boulot passe encore mais de chez toi tu pourrais.
Que ce ne soit pas confortable pour toi de lire le forum sur le web, on
s'en moquerait éperdument si ça ne t'incitait pas à reposter 20 fois les
mêmes questions.


et de frederic sigonneau, et j'essaie toujours de comprend re

leur macro, car je demande souvent des commentaires, pour pouvoir les
adapter à mes autres macro, et je leur dit toujours merci,



Et prendre les gens pour des idiots c'est leur dire merci ? Changer de
pseudo tous les 15 jours et dire que tu n'as jamais entendu parler de
Testou ou de Phil c'est respecter les intervenants du forum ? Traire la
vache pour en tirer tout le lait, ça tu sais faire. S'il faut dire merci
pour qu'elle t'en donne encore un litre, tu le fais mais ta
reconnaissance des autres s'arrête là.




Avatar
rick
continue a m'insulter, je prie dieu pour QUE TU RENCONTRE TOUT LES MALHEURS
SI TU CONTINUE 0 M4INSULTER;

ON NE PEUT PAS AVOIR LE MEME qi QUE TOI,alors respecte ceux qui ont un qi
faible.

merci


ARRANGE TOI TOUT SEUL ET VA-T-EN AU DIABLE MAUDIT PARASITE.

--
On apprend pas à un vieux singe à faire des grimaces
"rick" a écrit dans le message de
news:
Bonjour,

La macro de michdenis, me permet de detecter des doublons, quand
j'importe

des données sur feuille, la macro se lance et permet de verifier les
différents doublons suivant la combinaisons de 5 colonnes.

le probleme est que je souhaite, si un doublon est détecté lors de
l'import

écraser la ligne déja existante quand je repond oui au
message(desirez vous

ecraser la ligne?).

J'ai essayé de faire une modif, mais le probleme par exemple, quand
sur ma

ligne 15 j'ai une ligne , et quand je vient faire l'import de la
meme ligne

j'ai la macro qui se lance , je choisit oui dans mon message:
désirez vous

écraser la ligne.
La ligne est effacé mais pas écrasé à la meme ligne, c'est a dire
que je me

retrouve avec la ligne 15 à vide et la ligne 16 avec les bonnes
données.


Savez vous comment faire pour écraser cette ligne 15, si le doublon
est

détecté.
c'est a dire avoir les nouvelle données sur la ligne 15.(ecraser
l'ancienne

donnée)

ci-joint l'aperçu de la macro:
Sub doublons()
Dim K As Integer, A As Integer
Dim rg As Range, P As Integer
Dim NomFeuille As String

NomFeuille = "Feuil1" 'à déterminer

Application.EnableEvents = False
'Concatenation des colonnes D, E, H, I, P dans la colonne IV
With Worksheets(NomFeuille)
Set rg = .Range("IV15:IV400")
rg.FormulaLocal = _
"=" & UCase(.Range("$D15").Address(0, 0)) & _
"&" & UCase(.Range("$E15").Address(0, 0)) & "&" _
& UCase(.Range("$H15").Address(0, 0)) _
& "&" & UCase(.Range("$I15").Address(0, 0)) & _
"&" & UCase(.Range("$P15").Address(0, 0))
'substitution des formules pour leurs valeurs, dans la colonne
HK:HK

rg.Value = rg.Value
'dans la colonne IU,place la formule suivante
'qui identifie le numero de lignes.ceci dans le but de remettre
le

tableau àla
'fin dans le meme ordre de tri,en se basant sur cette colonne
rg.Offset(, -1).Formula = "=row()"
'Transforme la formule de la colonne en sa valeur
rg.Offset(, -1).Value = rg.Offset(, -1).Value
'premier tri de la colonne IU pour regrouper les doublons les un
avec

les autres
rg.Offset(, -255).Resize(, 256).Sort Key1:=rg(2, 1)
End With
'Boucle qui teste chacune des cellules de la colonnes IU
'selon le choix de l'utilisateur, affecter une lettre au doublon ou
supprimer ces doublons

Do While rg(K + 1, 1).Row < rg.Row + rg.Rows.Count
A = WorksheetFunction.CountIf(rg, rg(K + 1, 1))
If A > 1 Then
'si a>1, il ya doublons

'cette ligne permet de sélectionner la plage ou sont les
doublons pour

permettre à l'utilisateur
'de les visionner
Application.GoTo Range("A" & rg(K + 1, 1).Offset(-2).Row), True
rg(K + 1, 1).Resize(A).EntireRow.Select
'le message d'alerte
If MsgBox("il y a des " & A - 1 & " doublon(s) dans la
ligne" _

& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"désirez vous écraser cette ligne ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then

rg(K + 1).EntireRow.ClearContents

Merci d'avance






Avatar
Laurent Daures
aujourd'hui, c'est férié et personne ne
travaille, même pas michel à qui, j'espère, tu n'oublieras pas d'envoyer
une
Bonsoir,

erreur Jean Paul,
j'ai travaillé (je n'atias pas seul) aujourd'hui, de 8h à 20 h, presque non
stop,
et sans faire de sieste, snif !
Vos enveloppes électorales, vous croyez qu'elles arrivent toutes
seules dans les bureaux avant la distribution par votre facteur bien aimé ?
(on a bossé aussi le premier mai de 7h à 20h)
respect pour les fonctionnaires;-))
Amicalement
Siesting Hoax

"jps" <enlevezd' a écrit dans le message de news:

arrête de jouer au con, rick.... aujourd'hui, c'est férié et personne ne
travaille, même pas michel à qui, j'espère, tu n'oublieras pas d'envoyer
une
petite spécialité de ton coin (tu peux même l'envoyer deux fois, des fois
que notre québécois aime)
jps

"rick" a écrit dans le message de
news:
je comprend pas ta réponse?

tu sait quelle est la ligne a corrigé pour écraser et non effacer.

merci


Bonjour,

c'est une macro pour éviter les doublons de fil que tu devrais mettre
au
point...

à+twinley

Bonjour,

La macro de michdenis, me permet de detecter des doublons, quand
j'importe



des données sur feuille, la macro se lance et permet de verifier les
différents doublons suivant la combinaisons de 5 colonnes.

le probleme est que je souhaite, si un doublon est détecté lors de
l'import



écraser la ligne déja existante quand je repond oui au
message(desirez
vous



ecraser la ligne?).

J'ai essayé de faire une modif, mais le probleme par exemple, quand
sur ma



ligne 15 j'ai une ligne , et quand je vient faire l'import de la meme
ligne



j'ai la macro qui se lance , je choisit oui dans mon message: désirez
vous



écraser la ligne.
La ligne est effacé mais pas écrasé à la meme ligne, c'est a dire que
je me



retrouve avec la ligne 15 à vide et la ligne 16 avec les bonnes
données.




Savez vous comment faire pour écraser cette ligne 15, si le doublon
est



détecté.
c'est a dire avoir les nouvelle données sur la ligne 15.(ecraser
l'ancienne



donnée)

ci-joint l'aperçu de la macro:
Sub doublons()
Dim K As Integer, A As Integer
Dim rg As Range, P As Integer
Dim NomFeuille As String

NomFeuille = "Feuil1" 'à déterminer

Application.EnableEvents = False
'Concatenation des colonnes D, E, H, I, P dans la colonne IV
With Worksheets(NomFeuille)
Set rg = .Range("IV15:IV400")
rg.FormulaLocal = _
"=" & UCase(.Range("$D15").Address(0, 0)) & _
"&" & UCase(.Range("$E15").Address(0, 0)) & "&" _
& UCase(.Range("$H15").Address(0, 0)) _
& "&" & UCase(.Range("$I15").Address(0, 0)) & _
"&" & UCase(.Range("$P15").Address(0, 0))
'substitution des formules pour leurs valeurs, dans la colonne
HK:HK



rg.Value = rg.Value
'dans la colonne IU,place la formule suivante
'qui identifie le numero de lignes.ceci dans le but de remettre
le
tableau àla
'fin dans le meme ordre de tri,en se basant sur cette colonne
rg.Offset(, -1).Formula = "=row()"
'Transforme la formule de la colonne en sa valeur
rg.Offset(, -1).Value = rg.Offset(, -1).Value
'premier tri de la colonne IU pour regrouper les doublons les un
avec



les autres
rg.Offset(, -255).Resize(, 256).Sort Key1:=rg(2, 1)
End With
'Boucle qui teste chacune des cellules de la colonnes IU
'selon le choix de l'utilisateur, affecter une lettre au doublon ou
supprimer ces doublons

Do While rg(K + 1, 1).Row < rg.Row + rg.Rows.Count
A = WorksheetFunction.CountIf(rg, rg(K + 1, 1))
If A > 1 Then
'si a>1, il ya doublons

'cette ligne permet de sélectionner la plage ou sont les doublons
pour



permettre à l'utilisateur
'de les visionner
Application.GoTo Range("A" & rg(K + 1, 1).Offset(-2).Row), True
rg(K + 1, 1).Resize(A).EntireRow.Select
'le message d'alerte
If MsgBox("il y a des " & A - 1 & " doublon(s) dans la ligne"
_



& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"désirez vous écraser cette ligne ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then

rg(K + 1).EntireRow.ClearContents

Merci d'avance










1 2 3 4