Pages

Affichage des articles dont le libellé est doublons. Afficher tous les articles
Affichage des articles dont le libellé est doublons. Afficher tous les articles

XL 2013 probleme pour accelerer une macro qui garde les doublons sujet

vendredi 28 mars 2014




Bonjour,

on m'a aide il y a quelques temps; on m'a donne un code qui marche bien:

Sub eliminer_non_erreur()

Dim plage As Range
Dim Ligne As Long, cpt As Long
'On Error GoTo FinSuppr

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual



LigSource = Sheets(2).Range("B" & Rows.Count).End(xlUp).Row
LigCible = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row + 5 ' + 5


Sheets(2).Range("B6:B" & LigSource).Copy Sheets(1).Range("A" & LigCible)
With ActiveSheet
Set plage = .Range("A3:A" & .Range("A" & Rows.Count).End(xlUp).Row)
cpt = plage.Rows.Count
For Ligne = cpt To 1 Step -1
If Application.CountIf(plage, plage.Cells(Ligne, 1)) = 1 Then
plage.Cells(Ligne, 1).EntireRow.Delete
End If
Next Ligne
End With

Application.ScreenUpdating = True

End Sub


-----------------------

Toutefois, j'ai un long fichier et la macro a pris un temps bien trop long

Je vous met le fichier ci joint si vous voulez faire une simulation

Auriez vous des idees pour que la macro puisse etre bien plus rapide?

peut etre faut il changer le code ?

Merci de votre aide













Fichiers attachés








Doublons sur clé primaire, comment faire? sujet




Bonjour,
Je vous remercie d'avance pour votre indulgence... j'ai cherché sur votre site et essayé pendant plusieurs heures à solutionner mon problème sans succès...

J'ai une requête qui repose sur 7 tables, dont 6 qui ont une clé unique en commun (un n° d'article) et une septième (table de stocks) qui a comme clé primaire un numéro de dépôt.
j'ai besoin de cette table pour déterminer s'il y a du stock ou non pour pouvoir "suspendre" l'article, mais quoi que je fasse, je me retrouve avec autant de ligne que de numéro de dépôt existant pour chaque article ( si un article est concerné par 4 dépôts différents, j'aurais 4 lignes...

J'aurais eu besoin de n'avoir qu'une ligne par article mais ne trouve pas de solution...

Merci d'avance pour votre aide.
nb: pour plus de lisiblilté, j'ai éliminé un grand nombre d'items "select"


Code:


1
2
3
4
5
6
SELECT 
ARTIC_2.NART AS "NumArticle",
ARTIC.APV AS "PrixBase",
case when ARTIC_2.ASUP=1 AND STOC.QSTO=0 AND STOC.QSTOR =0 then 'A Suspendre' else 'OK' end AS "ASuspendre"
FROM GESCOM.GESCOMA.ARTFOU ARTFOU, GESCOM.GESCOME.ARTFOU ARTFOU_1, GESCOM.GESCOMF.ARTFOU ARTFOU_2, GESCOM.GESCOMA.ARTIC ARTIC, GESCOM.GESCOME.ARTIC ARTIC_1, GESCOM.GESCOMF.ARTIC ARTIC_2, GESCOM.PARA.PARA34 PARA34, GESCOM.PARA.PARA35 PARA35, GESCOM.GESCOMA.STOC STOC
WHERE ARTIC_2.NART = ARTFOU_2.AFNART AND ARTIC.NART = ARTFOU.AFNART AND ARTIC_1.NART = ARTIC_2.NART AND ARTIC.NART = ARTIC_1.NART AND ARTFOU_1.AFNART = ARTIC_1.NART AND ARTFOU_2.AFCFRA = PARA34.KEY34 AND ARTFOU_2.AFCGAR = PARA35.KEY35 AND ARTIC.NART = STOC.NART AND ((ARTIC.ASUP=0))






Effacer doublons dans une table sujet

jeudi 27 mars 2014




Bonjour a tous,

j'ai ces données dans une table mysql:


Code:


1
2
3
4
5
6
7
8

borrowernumber code attribute password
4 DNI 43697898 NULL
4 notasinter Nota interna Nota interna que aparece en el moment... NULL
4 notasinter Nota interna Nota interna que aparece en el moment... NULL
4 NOTASINTER Nota interna Nota interna que aparece en el moment... NULL
4 NOTASINTER Nota interna Nota interna que aparece en el moment... NULL
4 NOTASINTER Nota interna Nota interna que aparece en el moment..


Voyez pour le même id (4) j'ai un champs code = 'DNI' avec sa valeur et notasinter avec sa valeur, mais apres notasinter se duplique
La photo final correcte ici serait:


Code:


1
2
3
4

borrowernumber code attribute password
4 DNI 43697898 NULL
4 notasinter Nota interna Nota interna que aparece en el moment... NULL


J'ai recherché sur le forum et j'ai trouvé ceci:


Code:


1
2
3
4
5
6
DELETE site_info AS effacable 
WHERE EXISTS (
SELECT *
FROM site_info AS autre
WHERE autre.id > effacable.id AND autre.site_id = effacable.site_id
)


Je ne suis pas sur que ce code d'adapte (même en adaptant les noms de table et de champs)
Existe t'il une forme d'effecer les lignes en double ?

D'avance merci