Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lister tout sans prendre en compte 2 mots

4 réponses
Avatar
David T.
Re bonsoir à tous

Dans cette macro ci-dessous, j'aimerais ne pas prendre en compte les mots
"Utilisateur" et Administrateur"
J'ai vu sur excelabo quelque chose comme ca (>>>Les listes>>>Listbox
alimenté avec une extraction sans doublon)
Merci de l'aide que vous pourez m'apportée.

Salutations
David

La procédure (pas de moi, bien sur !!!)

Sub Liste_Sans_Doublons()
'Permet de lister et trier par ordre alhabétique dans la
'feuille "Relevé Général" le matériel dans la feuille sélectionnée en [O2]


Dim CollObject As New Collection
Dim Counter As Long
Dim FirstDataRow As Long
Dim LastRow As Long
Dim NameOfSheet As String
Dim SearchColumn As String
Dim SearchRange As Range
Dim SearchData As Variant
Dim UniqueColumn As Long
Dim UniqueData() As Variant

'paramètres de travail :

With ActiveSheet

Range("B6:B75").Select
Selection.ClearContents
Range("B6").Select

NameOfSheet = [O3]
End With

SearchColumn = "C"
FirstDataRow = 4 ' s'il y a une ligne d'entête

On Error Resume Next

With Worksheets(NameOfSheet)
UniqueColumn = .Columns(SearchColumn).Column
LastRow = .Cells(65536, UniqueColumn).End(xlUp).Row
Set SearchRange = .Range(.Cells(FirstDataRow, UniqueColumn), _
.Cells(LastRow, UniqueColumn))
SearchData = SearchRange.Value
For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1), _
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter
End With

ReDim UniqueData(1 To CollObject.Count, 1 To 1)

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter

'pour renvoyer le résultat dans une feuille de calcul
Sheets("Relevé Général").Select
Range("B6").Resize(UBound(UniqueData, 1), 1).Value = UniqueData

Range("B6:B75").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("O3").Select

End Sub

-- direction-ternoise@(supprimerceci)wanadoo.fr

4 réponses

Avatar
Eric KERGRESSE
Bonjour,

Peut-être une piste, sans garantie car non essayé :


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" And
CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter

Les enregistrements vides seront éliminés par le tri effectué après.

Cordialement.

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message
de news: um2AuNk$
Re bonsoir à tous

Dans cette macro ci-dessous, j'aimerais ne pas prendre en compte les mots
"Utilisateur" et Administrateur"
J'ai vu sur excelabo quelque chose comme ca (>>>Les listes>>>Listbox
alimenté avec une extraction sans doublon)
Merci de l'aide que vous pourez m'apportée.

Salutations
David

La procédure (pas de moi, bien sur !!!)

Sub Liste_Sans_Doublons()
'Permet de lister et trier par ordre alhabétique dans la
'feuille "Relevé Général" le matériel dans la feuille sélectionnée en [O2]


Dim CollObject As New Collection
Dim Counter As Long
Dim FirstDataRow As Long
Dim LastRow As Long
Dim NameOfSheet As String
Dim SearchColumn As String
Dim SearchRange As Range
Dim SearchData As Variant
Dim UniqueColumn As Long
Dim UniqueData() As Variant

'paramètres de travail :

With ActiveSheet

Range("B6:B75").Select
Selection.ClearContents
Range("B6").Select

NameOfSheet = [O3]
End With

SearchColumn = "C"
FirstDataRow = 4 ' s'il y a une ligne d'entête

On Error Resume Next

With Worksheets(NameOfSheet)
UniqueColumn = .Columns(SearchColumn).Column
LastRow = .Cells(65536, UniqueColumn).End(xlUp).Row
Set SearchRange = .Range(.Cells(FirstDataRow, UniqueColumn), _
.Cells(LastRow, UniqueColumn))
SearchData = SearchRange.Value
For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1), _
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter
End With

ReDim UniqueData(1 To CollObject.Count, 1 To 1)

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter

'pour renvoyer le résultat dans une feuille de calcul
Sheets("Relevé Général").Select
Range("B6").Resize(UBound(UniqueData, 1), 1).Value = UniqueData

Range("B6:B75").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("O3").Select

End Sub

-- direction-ternoise@(supprimerceci)wanadoo.fr




Avatar
David T.
Bonjour Eric

Meci de ta réponse, mais ou mettre ce bout de code? Pour moi c'est du
chinois tout ca !!!
Juste comme ca, je l'ai collé en dessous de

For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1), _
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter


Bien sur, cela ne fonctionne pas.

Merci de votre aide

Salutations
David

"Eric KERGRESSE" a écrit dans le message de
news:unNHIjo$
Bonjour,

Peut-être une piste, sans garantie car non essayé :


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" And
CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter

Les enregistrements vides seront éliminés par le tri effectué après.

Cordialement.

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message

de news: um2AuNk$
Re bonsoir à tous

Dans cette macro ci-dessous, j'aimerais ne pas prendre en compte les
mots


"Utilisateur" et Administrateur"
J'ai vu sur excelabo quelque chose comme ca (>>>Les listes>>>Listbox
alimenté avec une extraction sans doublon)
Merci de l'aide que vous pourez m'apportée.

Salutations
David

La procédure (pas de moi, bien sur !!!)

Sub Liste_Sans_Doublons()
'Permet de lister et trier par ordre alhabétique dans la
'feuille "Relevé Général" le matériel dans la feuille sélectionnée en
[O2]




Dim CollObject As New Collection
Dim Counter As Long
Dim FirstDataRow As Long
Dim LastRow As Long
Dim NameOfSheet As String
Dim SearchColumn As String
Dim SearchRange As Range
Dim SearchData As Variant
Dim UniqueColumn As Long
Dim UniqueData() As Variant

'paramètres de travail :

With ActiveSheet

Range("B6:B75").Select
Selection.ClearContents
Range("B6").Select

NameOfSheet = [O3]
End With

SearchColumn = "C"
FirstDataRow = 4 ' s'il y a une ligne d'entête

On Error Resume Next

With Worksheets(NameOfSheet)
UniqueColumn = .Columns(SearchColumn).Column
LastRow = .Cells(65536, UniqueColumn).End(xlUp).Row
Set SearchRange = .Range(.Cells(FirstDataRow, UniqueColumn), _
.Cells(LastRow, UniqueColumn))
SearchData = SearchRange.Value
For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1), _
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter
End With

ReDim UniqueData(1 To CollObject.Count, 1 To 1)

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter

'pour renvoyer le résultat dans une feuille de calcul
Sheets("Relevé Général").Select
Range("B6").Resize(UBound(UniqueData, 1), 1).Value = UniqueData

Range("B6:B75").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess,
_


OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("O3").Select

End Sub

-- direction-ternoise@(supprimerceci)wanadoo.fr








Avatar
Eric KERGRESSE
Re-bonjour,


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" And
CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter



est à mettre à la place de

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter





Explication :

Si la variable tableau CollObject contient les mots "Utilisateur" et
"Administrateur" alors le contenu de la variable
n'est pas chargé dans la variable tableau UniqueData(X,1)

Attention, le code qui apparait à l'écran est différent de ce que j'ai tapé
sur mon micro, il faut que la deux
conditions apparaissent sur la même ligne, ou mettre un _ juste avant le And
(pas d'espace) et faire un retour chariot avant la lettre A
pour passer à la ligne suivante comme ceci :


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" _
And CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter

Cordialement

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le message
de news: OtTdCVp$
Bonjour Eric

Meci de ta réponse, mais ou mettre ce bout de code? Pour moi c'est du
chinois tout ca !!!
Juste comme ca, je l'ai collé en dessous de

For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1), _
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter


Bien sur, cela ne fonctionne pas.

Merci de votre aide

Salutations
David

"Eric KERGRESSE" a écrit dans le message de
news:unNHIjo$
Bonjour,

Peut-être une piste, sans garantie car non essayé :


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" And
CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter

Les enregistrements vides seront éliminés par le tri effectué après.

Cordialement.

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message

de news: um2AuNk$
Re bonsoir à tous

Dans cette macro ci-dessous, j'aimerais ne pas prendre en compte les
mots


"Utilisateur" et Administrateur"
J'ai vu sur excelabo quelque chose comme ca (>>>Les listes>>>Listbox
alimenté avec une extraction sans doublon)
Merci de l'aide que vous pourez m'apportée.

Salutations
David

La procédure (pas de moi, bien sur !!!)

Sub Liste_Sans_Doublons()
'Permet de lister et trier par ordre alhabétique dans la
'feuille "Relevé Général" le matériel dans la feuille sélectionnée en
[O2]




Dim CollObject As New Collection
Dim Counter As Long
Dim FirstDataRow As Long
Dim LastRow As Long
Dim NameOfSheet As String
Dim SearchColumn As String
Dim SearchRange As Range
Dim SearchData As Variant
Dim UniqueColumn As Long
Dim UniqueData() As Variant

'paramètres de travail :

With ActiveSheet

Range("B6:B75").Select
Selection.ClearContents
Range("B6").Select

NameOfSheet = [O3]
End With

SearchColumn = "C"
FirstDataRow = 4 ' s'il y a une ligne d'entête

On Error Resume Next

With Worksheets(NameOfSheet)
UniqueColumn = .Columns(SearchColumn).Column
LastRow = .Cells(65536, UniqueColumn).End(xlUp).Row
Set SearchRange = .Range(.Cells(FirstDataRow, UniqueColumn), _
.Cells(LastRow, UniqueColumn))
SearchData = SearchRange.Value
For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1),
_



key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter
End With

ReDim UniqueData(1 To CollObject.Count, 1 To 1)

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter

'pour renvoyer le résultat dans une feuille de calcul
Sheets("Relevé Général").Select
Range("B6").Resize(UBound(UniqueData, 1), 1).Value = UniqueData

Range("B6:B75").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending,
Header:=xlGuess,



_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("O3").Select

End Sub

-- direction-ternoise@(supprimerceci)wanadoo.fr












Avatar
David T.
SUPER, Un grand merci Eric, cela faisait longtemp que j'attendais cela.

Juste une petite erreur corrigée : A la place de If CollObjet, il faux If
CollObject
Tout le monde à droit à l'erreur :-)))

Encore merci

Bon WE.

"Eric KERGRESSE" a écrit dans le message de
news:OA2qYyp$
Re-bonjour,


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" And
CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter



est à mettre à la place de

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter





Explication :

Si la variable tableau CollObject contient les mots "Utilisateur" et
"Administrateur" alors le contenu de la variable
n'est pas chargé dans la variable tableau UniqueData(X,1)

Attention, le code qui apparait à l'écran est différent de ce que j'ai
tapé

sur mon micro, il faut que la deux
conditions apparaissent sur la même ligne, ou mettre un _ juste avant le
And

(pas d'espace) et faire un retour chariot avant la lettre A
pour passer à la ligne suivante comme ceci :


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" _
And CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter

Cordialement

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message

de news: OtTdCVp$
Bonjour Eric

Meci de ta réponse, mais ou mettre ce bout de code? Pour moi c'est du
chinois tout ca !!!
Juste comme ca, je l'ai collé en dessous de

For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1, 1), _
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter


Bien sur, cela ne fonctionne pas.

Merci de votre aide

Salutations
David

"Eric KERGRESSE" a écrit dans le message de
news:unNHIjo$
Bonjour,

Peut-être une piste, sans garantie car non essayé :


For Counter = 1 To CollObject.Count
If CollObjet(Counter)<>"Utilisateur" And
CollObject(Counter)<>"Administrateur" Then
UniqueData(Counter, 1) = CollObject(Counter)
End If
Next Counter

Les enregistrements vides seront éliminés par le tri effectué après.

Cordialement.

"David T." <direction-ternoise@(enlever)wanadoo.fr> a écrit dans le
message

de news: um2AuNk$
Re bonsoir à tous

Dans cette macro ci-dessous, j'aimerais ne pas prendre en compte les
mots


"Utilisateur" et Administrateur"
J'ai vu sur excelabo quelque chose comme ca (>>>Les listes>>>Listbox
alimenté avec une extraction sans doublon)
Merci de l'aide que vous pourez m'apportée.

Salutations
David

La procédure (pas de moi, bien sur !!!)

Sub Liste_Sans_Doublons()
'Permet de lister et trier par ordre alhabétique dans la
'feuille "Relevé Général" le matériel dans la feuille sélectionnée
en




[O2]


Dim CollObject As New Collection
Dim Counter As Long
Dim FirstDataRow As Long
Dim LastRow As Long
Dim NameOfSheet As String
Dim SearchColumn As String
Dim SearchRange As Range
Dim SearchData As Variant
Dim UniqueColumn As Long
Dim UniqueData() As Variant

'paramètres de travail :

With ActiveSheet

Range("B6:B75").Select
Selection.ClearContents
Range("B6").Select

NameOfSheet = [O3]
End With

SearchColumn = "C"
FirstDataRow = 4 ' s'il y a une ligne d'entête

On Error Resume Next

With Worksheets(NameOfSheet)
UniqueColumn = .Columns(SearchColumn).Column
LastRow = .Cells(65536, UniqueColumn).End(xlUp).Row
Set SearchRange = .Range(.Cells(FirstDataRow, UniqueColumn), _
.Cells(LastRow, UniqueColumn))
SearchData = SearchRange.Value
For Counter = FirstDataRow To LastRow
CollObject.Add Item:=SearchData(Counter - FirstDataRow + 1,
1),




_
key:=CStr(SearchData(Counter - FirstDataRow + 1, 1))
Next Counter
End With

ReDim UniqueData(1 To CollObject.Count, 1 To 1)

For Counter = 1 To CollObject.Count
UniqueData(Counter, 1) = CollObject(Counter)
Next Counter

'pour renvoyer le résultat dans une feuille de calcul
Sheets("Relevé Général").Select
Range("B6").Resize(UBound(UniqueData, 1), 1).Value = UniqueData

Range("B6:B75").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending,
Header:=xlGuess,



_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("O3").Select

End Sub

-- direction-ternoise@(supprimerceci)wanadoo.fr