OVH Cloud OVH Cloud

michdenis: macro doublons?

12 réponses
Avatar
rick
bonjour,
par rapport a la macro michdenis, au lieu d'effacer le doublons, je souhaite
écraser la ligne .
donc mettre ce doublon a la place : quand j'importe mes données
If MsgBox("Il y a " & A - 1 & " doublon(s) de la ligne " _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"Désirez-vous écraser la facilité existante ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then
'si l'utilisteur, répond oui, il y aura suppression des lignes
contenant les doublons
Rg(K + 1, 1).Offset(1).Resize(A - 1).EntireRow.ClearContents

A = 1

comment faire?

merci d'avance

2 réponses

1 2
Avatar
MichDenis
Bonjour Rick,

Cette ligne de code efface le contenu . Ok

rg(K + 1).entirerow.clearcontents

Il m'est difficile de te conseiller ... je n'ai pas une vue d'ensemble de ton projet et de ce que tu veux réaliser. IL y a beaucoup
trop d'impondérables que je ne connais pas pour t'orienter.

IL y a une expression anglaise qui dit : "Kiss" acronyme pour "Keep it simple & stupid". Tu dois te contenter de faire les choses
le plus simplement sinon tu vas te perdre dans les méandres de la programmation.

Si tu veux supprimer les doublons avant d'ajouter l'importation des données.

A ) supprime les doublons -> tu as déjà presque toute la procédure
'Tu développes une procédure pour ceci
Le messagebox n'est pas obligé d'apparaître à chaque suppression de ligne.

B ) Ajoute les données importées
Tu développes une procédure pour ceci

C ) Traite l'ensemble des données de la feuille pour un nouveau tri
Tu développes une procédure pour ceci.

Le principe est de scinder les actions en de petites procédures. Tu peux par la suite, créer une procédure générale et appeler
chacune des petites procédures l'une après l'autre dans un déroulement logique. C'est beaucoup plus simple que d'opter pour une très
longue procédure.


Salutations!







"rick" a écrit dans le message de news:
cette ligne modifié:

rg(K + 1).entirerow.clearcontents

cela doit marché avec cette ligne.
qu'est ce que t'en pense?


Bonjour Rick,

Ce que tu demandes n'est pas réalisable avec cette macro. Tu devras refaire le code de la macro en grande partie. Il ne s'agit pas
d'une modification mineure. Avant d'aller de l'avant avec ton projet, je te suggère d'essayer de conceptualiser ce que tu veux
faire
le plus exactement possible et tenter de conserver à l'esprit le traitement aussi simple que possible ...sinon tu vas devoir y
consacrer un temps fou .... ce n'est pas toujours facile de modifier une procédure et encore moins une façon d'approcher une
problématique.

Rien dans la macro actuelle, t'empêche d'ajouter les lignes de données que tu veux et réexécuter la procédure !


Salutations!


"rick" a écrit dans le message de news:
au fait comme j'importe des données d'une autre feuille.
je veux que le doublon détecté ecrase la ligne au lieu de supprimer la ligne.

merci d'avance.


Bonjour Rick,

La commande initiale supprimait totalement et entièrement la dite ligne :
Rg(K + 1, 1).Offset(1).Resize(A - 1).EntireRow.Delete

Qu'est-ce qui te dérange dans cette façon de procéder ? Quel résultat concret veux-tu obtenir ?

'-------------
Supprimer = La ligne disparaît totalement
Clear = efface le contenu et format
clearcontents = efface le contenu seulement.
'-------------


Salutations!







"rick" a écrit dans le message de news:
bonjour,
par rapport a la macro michdenis, au lieu d'effacer le doublons, je souhaite
écraser la ligne .
donc mettre ce doublon a la place : quand j'importe mes données
If MsgBox("Il y a " & A - 1 & " doublon(s) de la ligne " _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"Désirez-vous écraser la facilité existante ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then
'si l'utilisteur, répond oui, il y aura suppression des lignes
contenant les doublons
Rg(K + 1, 1).Offset(1).Resize(A - 1).EntireRow.ClearContents

A = 1

comment faire?

merci d'avance










Avatar
rick
merci


Bonjour Rick,

Cette ligne de code efface le contenu . Ok

rg(K + 1).entirerow.clearcontents

Il m'est difficile de te conseiller ... je n'ai pas une vue d'ensemble de ton projet et de ce que tu veux réaliser. IL y a beaucoup
trop d'impondérables que je ne connais pas pour t'orienter.

IL y a une expression anglaise qui dit : "Kiss" acronyme pour "Keep it simple & stupid". Tu dois te contenter de faire les choses
le plus simplement sinon tu vas te perdre dans les méandres de la programmation.

Si tu veux supprimer les doublons avant d'ajouter l'importation des données.

A ) supprime les doublons -> tu as déjà presque toute la procédure
'Tu développes une procédure pour ceci
Le messagebox n'est pas obligé d'apparaître à chaque suppression de ligne.

B ) Ajoute les données importées
Tu développes une procédure pour ceci

C ) Traite l'ensemble des données de la feuille pour un nouveau tri
Tu développes une procédure pour ceci.

Le principe est de scinder les actions en de petites procédures. Tu peux par la suite, créer une procédure générale et appeler
chacune des petites procédures l'une après l'autre dans un déroulement logique. C'est beaucoup plus simple que d'opter pour une très
longue procédure.


Salutations!







"rick" a écrit dans le message de news:
cette ligne modifié:

rg(K + 1).entirerow.clearcontents

cela doit marché avec cette ligne.
qu'est ce que t'en pense?


Bonjour Rick,

Ce que tu demandes n'est pas réalisable avec cette macro. Tu devras refaire le code de la macro en grande partie. Il ne s'agit pas
d'une modification mineure. Avant d'aller de l'avant avec ton projet, je te suggère d'essayer de conceptualiser ce que tu veux
faire
le plus exactement possible et tenter de conserver à l'esprit le traitement aussi simple que possible ...sinon tu vas devoir y
consacrer un temps fou .... ce n'est pas toujours facile de modifier une procédure et encore moins une façon d'approcher une
problématique.

Rien dans la macro actuelle, t'empêche d'ajouter les lignes de données que tu veux et réexécuter la procédure !


Salutations!


"rick" a écrit dans le message de news:
au fait comme j'importe des données d'une autre feuille.
je veux que le doublon détecté ecrase la ligne au lieu de supprimer la ligne.

merci d'avance.


Bonjour Rick,

La commande initiale supprimait totalement et entièrement la dite ligne :
Rg(K + 1, 1).Offset(1).Resize(A - 1).EntireRow.Delete

Qu'est-ce qui te dérange dans cette façon de procéder ? Quel résultat concret veux-tu obtenir ?

'-------------
Supprimer = La ligne disparaît totalement
Clear = efface le contenu et format
clearcontents = efface le contenu seulement.
'-------------


Salutations!







"rick" a écrit dans le message de news:
bonjour,
par rapport a la macro michdenis, au lieu d'effacer le doublons, je souhaite
écraser la ligne .
donc mettre ce doublon a la place : quand j'importe mes données
If MsgBox("Il y a " & A - 1 & " doublon(s) de la ligne " _
& rg(K + 1).Row & "." & vbCrLf & vbCrLf & _
"Désirez-vous écraser la facilité existante ? ", _
vbCritical + vbYesNo, "Doublons") = vbYes Then
'si l'utilisteur, répond oui, il y aura suppression des lignes
contenant les doublons
Rg(K + 1, 1).Offset(1).Resize(A - 1).EntireRow.ClearContents

A = 1

comment faire?

merci d'avance















1 2