dans une macro( Private Sub Workbook_BeforeSave)
je ne trouve pas comment dire : Pour une meme année et pour un meme N°
(ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A
l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
poy-poy
Bonjour Chris,
Commence par faire un rangement sur tes colonnes en mettant la colonne date, la colonne numéro et la colonne "11A" comme champs de tri. Puis tu supprimes les doublons. je suppose que tes colonnes sont en A, B et C arrange si ce n'est pas cela Je supprime les lignes entières des donnes concernées, si tu veux juste les 3 colonnes vire le entirerow
Sub doublon()
Dim i As Integer, tablx As Variant, rge As Range, p As Integer
If tablx(i, 1) = tablx(i - 1, 1) And tablx(i, 2) = tablx(i - 1, 2) And tablx(i, 3) = tablx(i - 1, 3) Then If p = 0 Then Set rge = Cells(i, 1).EntireRow p = 1 Else Set rge = Union(rge, Cells(i, 1).EntireRow) End If End If Next i rge.Delete End Sub
dans une macro( Private Sub Workbook_BeforeSave) je ne trouve pas comment dire : Pour une meme année et pour un meme N° (ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Merci -- Cordialement,
Bonjour Chris,
Commence par faire un rangement sur tes colonnes en mettant la colonne date,
la colonne numéro et la colonne "11A" comme champs de tri. Puis tu supprimes
les doublons.
je suppose que tes colonnes sont en A, B et C arrange si ce n'est pas cela
Je supprime les lignes entières des donnes concernées, si tu veux juste les
3 colonnes vire le entirerow
Sub doublon()
Dim i As Integer, tablx As Variant, rge As Range, p As Integer
If tablx(i, 1) = tablx(i - 1, 1) And tablx(i, 2) = tablx(i - 1, 2) And
tablx(i, 3) = tablx(i - 1, 3) Then
If p = 0 Then
Set rge = Cells(i, 1).EntireRow
p = 1
Else
Set rge = Union(rge, Cells(i, 1).EntireRow)
End If
End If
Next i
rge.Delete
End Sub
dans une macro( Private Sub Workbook_BeforeSave)
je ne trouve pas comment dire : Pour une meme année et pour un meme N°
(ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A
l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Commence par faire un rangement sur tes colonnes en mettant la colonne date, la colonne numéro et la colonne "11A" comme champs de tri. Puis tu supprimes les doublons. je suppose que tes colonnes sont en A, B et C arrange si ce n'est pas cela Je supprime les lignes entières des donnes concernées, si tu veux juste les 3 colonnes vire le entirerow
Sub doublon()
Dim i As Integer, tablx As Variant, rge As Range, p As Integer
If tablx(i, 1) = tablx(i - 1, 1) And tablx(i, 2) = tablx(i - 1, 2) And tablx(i, 3) = tablx(i - 1, 3) Then If p = 0 Then Set rge = Cells(i, 1).EntireRow p = 1 Else Set rge = Union(rge, Cells(i, 1).EntireRow) End If End If Next i rge.Delete End Sub
dans une macro( Private Sub Workbook_BeforeSave) je ne trouve pas comment dire : Pour une meme année et pour un meme N° (ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Merci -- Cordialement,
papou
Bonjour Un petit tour par ici s'impose : http://www.excelabo.net/xl/comparer.php Cordialement Pascal
dans une macro( Private Sub Workbook_BeforeSave) je ne trouve pas comment dire : Pour une meme année et pour un meme N° (ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Merci -- Cordialement,
Bonjour
Un petit tour par ici s'impose :
http://www.excelabo.net/xl/comparer.php
Cordialement
Pascal
"chris" <christophe.reina@ac-toulouse.fr> a écrit dans le message de
news:eM3TAzS2EHA.1408@TK2MSFTNGP10.phx.gbl...
dans une macro( Private Sub Workbook_BeforeSave)
je ne trouve pas comment dire : Pour une meme année et pour un meme N°
(ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A
l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
dans une macro( Private Sub Workbook_BeforeSave) je ne trouve pas comment dire : Pour une meme année et pour un meme N° (ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Merci -- Cordialement,
AV
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl() derL = [A:C].Find("*", , 1, , 1, 2).Row Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For x = 1 To derL If Rows(x).EntireRow.Hidden = True Then _ chain = chain & "A" & x & ":" & "C" & x & "," Next If chain = "" Then Exit Sub 'mettre ce que l'on veut en lieu et place de ....Select Range(Left(chain, Len(chain) - 1)).Select ActiveSheet.ShowAllData End Sub
AV
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl()
derL = [A:C].Find("*", , 1, , 1, 2).Row
Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
For x = 1 To derL
If Rows(x).EntireRow.Hidden = True Then _
chain = chain & "A" & x & ":" & "C" & x & ","
Next
If chain = "" Then Exit Sub
'mettre ce que l'on veut en lieu et place de ....Select
Range(Left(chain, Len(chain) - 1)).Select
ActiveSheet.ShowAllData
End Sub
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl() derL = [A:C].Find("*", , 1, , 1, 2).Row Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For x = 1 To derL If Rows(x).EntireRow.Hidden = True Then _ chain = chain & "A" & x & ":" & "C" & x & "," Next If chain = "" Then Exit Sub 'mettre ce que l'on veut en lieu et place de ....Select Range(Left(chain, Len(chain) - 1)).Select ActiveSheet.ShowAllData End Sub
AV
chris
Merci mais il faut absolument garder cet ordre (sens de la saisie) dons ne marche pas. De plus je ne connais pas le VBA Par avance et encore merci
-- Cordialement,
Christophe REINA Coordonnateur Pôle Tertaire - FOIX tél:05 61 02 12 22 "AV" a écrit dans le message de news:uQN$
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl() derL = [A:C].Find("*", , 1, , 1, 2).Row Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For x = 1 To derL If Rows(x).EntireRow.Hidden = True Then _ chain = chain & "A" & x & ":" & "C" & x & "," Next If chain = "" Then Exit Sub 'mettre ce que l'on veut en lieu et place de ....Select Range(Left(chain, Len(chain) - 1)).Select ActiveSheet.ShowAllData End Sub
AV
Merci mais il faut absolument garder cet ordre (sens de la saisie) dons ne
marche pas. De plus je ne connais pas le VBA
Par avance et encore merci
--
Cordialement,
Christophe REINA
Coordonnateur Pôle Tertaire - FOIX
tél:05 61 02 12 22
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de
news:uQN$XRU2EHA.3468@TK2MSFTNGP14.phx.gbl...
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl()
derL = [A:C].Find("*", , 1, , 1, 2).Row
Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
For x = 1 To derL
If Rows(x).EntireRow.Hidden = True Then _
chain = chain & "A" & x & ":" & "C" & x & ","
Next
If chain = "" Then Exit Sub
'mettre ce que l'on veut en lieu et place de ....Select
Range(Left(chain, Len(chain) - 1)).Select
ActiveSheet.ShowAllData
End Sub
Merci mais il faut absolument garder cet ordre (sens de la saisie) dons ne marche pas. De plus je ne connais pas le VBA Par avance et encore merci
-- Cordialement,
Christophe REINA Coordonnateur Pôle Tertaire - FOIX tél:05 61 02 12 22 "AV" a écrit dans le message de news:uQN$
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl() derL = [A:C].Find("*", , 1, , 1, 2).Row Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For x = 1 To derL If Rows(x).EntireRow.Hidden = True Then _ chain = chain & "A" & x & ":" & "C" & x & "," Next If chain = "" Then Exit Sub 'mettre ce que l'on veut en lieu et place de ....Select Range(Left(chain, Len(chain) - 1)).Select ActiveSheet.ShowAllData End Sub
AV
AV
Merci mais il faut absolument garder cet ordre (sens de la saisie) dons ne marche pas.
?? je comprends pas vraiment la remarque ! Ce qui t'est proposé est la sélection des doublons donc ça ne modifie strictement rien Ca met simplement en valeur !
De plus je ne connais pas le VBA Ben pour ce type de problème va falloir "y aller" pourtant !
Tu pourrais plus implement faire appel à un format conditionnel qui te "visualiserait" les doublons ! Regarde un exemple là :
http://cjoint.com/?mdqiDnmelQ
AV
Merci mais il faut absolument garder cet ordre (sens de la saisie) dons ne
marche pas.
?? je comprends pas vraiment la remarque !
Ce qui t'est proposé est la sélection des doublons donc ça ne modifie
strictement rien
Ca met simplement en valeur !
De plus je ne connais pas le VBA
Ben pour ce type de problème va falloir "y aller" pourtant !
Tu pourrais plus implement faire appel à un format conditionnel qui te
"visualiserait" les doublons !
Regarde un exemple là :
Merci mais il faut absolument garder cet ordre (sens de la saisie) dons ne marche pas.
?? je comprends pas vraiment la remarque ! Ce qui t'est proposé est la sélection des doublons donc ça ne modifie strictement rien Ca met simplement en valeur !
De plus je ne connais pas le VBA Ben pour ce type de problème va falloir "y aller" pourtant !
Tu pourrais plus implement faire appel à un format conditionnel qui te "visualiserait" les doublons ! Regarde un exemple là :
http://cjoint.com/?mdqiDnmelQ
AV
michdenis
Bonjour AV,
J'espère que le monsieur n'a pas trop de doublons !
Chain ne peut prendre une valeur plus grande de 255 caractères dans la ligne suivante:
Range(Left(chain, Len(chain) - 1)).Select
Salutations!
"AV" a écrit dans le message de news: uQN$ Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl() derL = [A:C].Find("*", , 1, , 1, 2).Row Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For x = 1 To derL If Rows(x).EntireRow.Hidden = True Then _ chain = chain & "A" & x & ":" & "C" & x & "," Next If chain = "" Then Exit Sub 'mettre ce que l'on veut en lieu et place de ....Select Range(Left(chain, Len(chain) - 1)).Select ActiveSheet.ShowAllData End Sub
AV
Bonjour AV,
J'espère que le monsieur n'a pas trop de doublons !
Chain ne peut prendre une valeur plus grande de 255 caractères dans la ligne suivante:
Range(Left(chain, Len(chain) - 1)).Select
Salutations!
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de news: uQN$XRU2EHA.3468@TK2MSFTNGP14.phx.gbl...
Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl()
derL = [A:C].Find("*", , 1, , 1, 2).Row
Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
For x = 1 To derL
If Rows(x).EntireRow.Hidden = True Then _
chain = chain & "A" & x & ":" & "C" & x & ","
Next
If chain = "" Then Exit Sub
'mettre ce que l'on veut en lieu et place de ....Select
Range(Left(chain, Len(chain) - 1)).Select
ActiveSheet.ShowAllData
End Sub
J'espère que le monsieur n'a pas trop de doublons !
Chain ne peut prendre une valeur plus grande de 255 caractères dans la ligne suivante:
Range(Left(chain, Len(chain) - 1)).Select
Salutations!
"AV" a écrit dans le message de news: uQN$ Pour la plage A2:Cx (A1:C1 = étiquettes de colonnes)
Sub zzz_Sup_L_Doubl() derL = [A:C].Find("*", , 1, , 1, 2).Row Range("A1:C" & derL).AdvancedFilter Action:=xlFilterInPlace, Unique:=True For x = 1 To derL If Rows(x).EntireRow.Hidden = True Then _ chain = chain & "A" & x & ":" & "C" & x & "," Next If chain = "" Then Exit Sub 'mettre ce que l'on veut en lieu et place de ....Select Range(Left(chain, Len(chain) - 1)).Select ActiveSheet.ShowAllData End Sub
AV
...patrick
salut, par un format conditionnel (si données dans colonne A): en A1: = nb.si($A$1:$A$3000) > 1 dans la condition 1 et tu mets une couleur qui te montreras les doublons au fur et à mesure de l'encodage. et tu copie ce format vers le bas avec le pinceau .
dans une macro( Private Sub Workbook_BeforeSave) je ne trouve pas comment dire : Pour une meme année et pour un meme N° (ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Merci -- Cordialement,
salut,
par un format conditionnel (si données dans colonne A):
en A1:
= nb.si($A$1:$A$3000) > 1 dans la condition 1 et tu mets une couleur qui te
montreras les doublons au fur et à mesure de l'encodage.
et tu copie ce format vers le bas avec le pinceau .
Ciao
...Patrick
"chris" <christophe.reina@ac-toulouse.fr> a écrit dans le message de
news:eM3TAzS2EHA.1408@TK2MSFTNGP10.phx.gbl...
dans une macro( Private Sub Workbook_BeforeSave)
je ne trouve pas comment dire : Pour une meme année et pour un meme N°
(ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A
l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
salut, par un format conditionnel (si données dans colonne A): en A1: = nb.si($A$1:$A$3000) > 1 dans la condition 1 et tu mets une couleur qui te montreras les doublons au fur et à mesure de l'encodage. et tu copie ce format vers le bas avec le pinceau .
dans une macro( Private Sub Workbook_BeforeSave) je ne trouve pas comment dire : Pour une meme année et pour un meme N° (ex:G4455), je ne peux pas avoir le meme N°(ex:11A) et j'ai 3000 lignes. A l'enregistrement, qu'il me dise:"attention doublon lignes 4 par exemple.
Merci -- Cordialement,
AV
Chain ne peut prendre une valeur plus grande de 255 caractères dans la ligne suivante:
Certes, certes mais ça laisse quand même de la marge....d'autant que le questionneur semble assez muet ! Alors pour supprimer les (très nombreux) doublons de la plage A1:Cx :
Sub zz2() [A:C].Insert derL = [D:F].Find("*", , 1, , 1, 2).Row With Range("D1:F" & derL) .AdvancedFilter Action:=xlFilterInPlace, Unique:=True .SpecialCells(xlCellTypeVisible).Copy ([A1]) End With ActiveSheet.ShowAllData [D:F].Delete: [A1].Select End Sub
PS : Mes amitiés à Jean TESTOU ;-) AV
Chain ne peut prendre une valeur plus grande de 255 caractères dans la ligne
suivante:
Certes, certes mais ça laisse quand même de la marge....d'autant que le
questionneur semble assez muet !
Alors pour supprimer les (très nombreux) doublons de la plage A1:Cx :
Sub zz2()
[A:C].Insert
derL = [D:F].Find("*", , 1, , 1, 2).Row
With Range("D1:F" & derL)
.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
.SpecialCells(xlCellTypeVisible).Copy ([A1])
End With
ActiveSheet.ShowAllData
[D:F].Delete: [A1].Select
End Sub
Chain ne peut prendre une valeur plus grande de 255 caractères dans la ligne suivante:
Certes, certes mais ça laisse quand même de la marge....d'autant que le questionneur semble assez muet ! Alors pour supprimer les (très nombreux) doublons de la plage A1:Cx :
Sub zz2() [A:C].Insert derL = [D:F].Find("*", , 1, , 1, 2).Row With Range("D1:F" & derL) .AdvancedFilter Action:=xlFilterInPlace, Unique:=True .SpecialCells(xlCellTypeVisible).Copy ([A1]) End With ActiveSheet.ShowAllData [D:F].Delete: [A1].Select End Sub