Même le dimanche en période de fêtes ... y m'énerve ;o))))
Boff ...
que m'apercois-je donque à la relecture ?
Ses données seraient en A1:Cx ?
Bon ...laissons réagir
AV
Même le dimanche en période de fêtes ... y m'énerve ;o))))
Boff ...
que m'apercois-je donque à la relecture ?
Ses données seraient en A1:Cx ?
Bon ...laissons réagir
AV
Même le dimanche en période de fêtes ... y m'énerve ;o))))
Boff ...
que m'apercois-je donque à la relecture ?
Ses données seraient en A1:Cx ?
Bon ...laissons réagir
AV
CA MARCHE DU TONNERRE DE ZEUS !!!!
Merci à tous
Super, super forum et forumers !!
Tiens si j'étais une nana, vous mériteriez une pi... mais je m'égare... :o)
!!!
Encore MErci
yvan
A bientot pour une nouvelle excelente aventure
----------------
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
CA MARCHE DU TONNERRE DE ZEUS !!!!
Merci à tous
Super, super forum et forumers !!
Tiens si j'étais une nana, vous mériteriez une pi... mais je m'égare... :o)
!!!
Encore MErci
yvan
A bientot pour une nouvelle excelente aventure
----------------
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
#1xpMJ2vEHA.536@TK2MSFTNGP11.phx.gbl...
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
CA MARCHE DU TONNERRE DE ZEUS !!!!
Merci à tous
Super, super forum et forumers !!
Tiens si j'étais une nana, vous mériteriez une pi... mais je m'égare... :o)
!!!
Encore MErci
yvan
A bientot pour une nouvelle excelente aventure
----------------
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Après les cahuètes et 1/2 cahuètes, les petits et gros bisoux, les
poutoux dans l'oreille, voici les turluttes [Non, chers ami(e)s
Canadiens, ce n'est pas la même chose que par chez vous :o) ]
Yvan, t'es gentil tout plein mais euh ... (comment dire?) faut pas
t'égarer :o)
@+
FxMCA MARCHE DU TONNERRE DE ZEUS !!!!
Merci à tous
Super, super forum et forumers !!
Tiens si j'étais une nana, vous mériteriez une pi... mais je m'égare...
:o)
!!!
Encore MErci
yvan
A bientot pour une nouvelle excelente aventure
----------------
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Après les cahuètes et 1/2 cahuètes, les petits et gros bisoux, les
poutoux dans l'oreille, voici les turluttes [Non, chers ami(e)s
Canadiens, ce n'est pas la même chose que par chez vous :o) ]
Yvan, t'es gentil tout plein mais euh ... (comment dire?) faut pas
t'égarer :o)
@+
FxM
CA MARCHE DU TONNERRE DE ZEUS !!!!
Merci à tous
Super, super forum et forumers !!
Tiens si j'étais une nana, vous mériteriez une pi... mais je m'égare...
:o)
!!!
Encore MErci
yvan
A bientot pour une nouvelle excelente aventure
----------------
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
#1xpMJ2vEHA.536@TK2MSFTNGP11.phx.gbl...
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Après les cahuètes et 1/2 cahuètes, les petits et gros bisoux, les
poutoux dans l'oreille, voici les turluttes [Non, chers ami(e)s
Canadiens, ce n'est pas la même chose que par chez vous :o) ]
Yvan, t'es gentil tout plein mais euh ... (comment dire?) faut pas
t'égarer :o)
@+
FxMCA MARCHE DU TONNERRE DE ZEUS !!!!
Merci à tous
Super, super forum et forumers !!
Tiens si j'étais une nana, vous mériteriez une pi... mais je m'égare...
:o)
!!!
Encore MErci
yvan
A bientot pour une nouvelle excelente aventure
----------------
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :Next a
End If
Next cel
---> ICI <---End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxMC'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :
Next a
End If
Next cel
---> ICI <---
End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxM
C'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
#1xpMJ2vEHA.536@TK2MSFTNGP11.phx.gbl...
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :Next a
End If
Next cel
---> ICI <---End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxMC'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
FX salut !!
tu es de Paris toi ???
peux tu m'ecrire un mot en privé, mon adresse est ci dessous (à propos du 11
decembre)
Merci
FX salut !!
tu es de Paris toi ???
peux tu m'ecrire un mot en privé, mon adresse est ci dessous (à propos du 11
decembre)
Merci
FX salut !!
tu es de Paris toi ???
peux tu m'ecrire un mot en privé, mon adresse est ci dessous (à propos du 11
decembre)
Merci
Next a
End If
Next cel
---> ICI <---
End With
End Sub
C'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Next a
End If
Next cel
---> ICI <---
End With
End Sub
C'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
#1xpMJ2vEHA.536@TK2MSFTNGP11.phx.gbl...
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
Next a
End If
Next cel
---> ICI <---
End With
End Sub
C'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
(Je reviendrais peut-être...:O)))
Pas de nouvelles ... t'es faché ?
Je sais, je sais... je débute
Je décortique le problème lentement. C'est quand m^me compliqué VBA non ?
T'as quelle formation pour sortir du code aussi facilement???
J'espère que tu te fais payer grassement... des compétences comme les
tiennes
ça doit se vendre à prix d'or.
Merci
(Je reviendrais peut-être...:O)))
"FxM" a écrit dans le message de news:Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :Next a
End If
Next cel
---> ICI <---End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxMC'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
(Je reviendrais peut-être...:O)))
Pas de nouvelles ... t'es faché ?
Je sais, je sais... je débute
Je décortique le problème lentement. C'est quand m^me compliqué VBA non ?
T'as quelle formation pour sortir du code aussi facilement???
J'espère que tu te fais payer grassement... des compétences comme les
tiennes
ça doit se vendre à prix d'or.
Merci
(Je reviendrais peut-être...:O)))
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
egctbs3vEHA.4028@TK2MSFTNGP15.phx.gbl...
Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :
Next a
End If
Next cel
---> ICI <---
End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxM
C'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
#1xpMJ2vEHA.536@TK2MSFTNGP11.phx.gbl...
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
(Je reviendrais peut-être...:O)))
Pas de nouvelles ... t'es faché ?
Je sais, je sais... je débute
Je décortique le problème lentement. C'est quand m^me compliqué VBA non ?
T'as quelle formation pour sortir du code aussi facilement???
J'espère que tu te fais payer grassement... des compétences comme les
tiennes
ça doit se vendre à prix d'or.
Merci
(Je reviendrais peut-être...:O)))
"FxM" a écrit dans le message de news:Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :Next a
End If
Next cel
---> ICI <---End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxMC'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données :
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex. A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE 1
(pas de titre)
yvan
(Je reviendrais peut-être...:O)))
Pas de nouvelles ... t'es faché ?
@+
FxMJe sais, je sais... je débute
Je décortique le problème lentement. C'est quand m^me compliqué VBA non
?
T'as quelle formation pour sortir du code aussi facilement???
J'espère que tu te fais payer grassement... des compétences comme les
tiennes
ça doit se vendre à prix d'or.
Merci
(Je reviendrais peut-être...:O)))
"FxM" a écrit dans le message de news:Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :Next a
End If
Next cel
---> ICI <---End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxMC'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données
:
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex.
A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE
1
(pas de titre)
yvan
(Je reviendrais peut-être...:O)))
Pas de nouvelles ... t'es faché ?
@+
FxM
Je sais, je sais... je débute
Je décortique le problème lentement. C'est quand m^me compliqué VBA non
?
T'as quelle formation pour sortir du code aussi facilement???
J'espère que tu te fais payer grassement... des compétences comme les
tiennes
ça doit se vendre à prix d'or.
Merci
(Je reviendrais peut-être...:O)))
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
egctbs3vEHA.4028@TK2MSFTNGP15.phx.gbl...
Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :
Next a
End If
Next cel
---> ICI <---
End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxM
C'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
#1xpMJ2vEHA.536@TK2MSFTNGP11.phx.gbl...
Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données
:
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxM
Excuses...
Clarifions la situation :
Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex.
A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE
1
(pas de titre)
yvan
(Je reviendrais peut-être...:O)))
Pas de nouvelles ... t'es faché ?
@+
FxMJe sais, je sais... je débute
Je décortique le problème lentement. C'est quand m^me compliqué VBA non
?
T'as quelle formation pour sortir du code aussi facilement???
J'espère que tu te fais payer grassement... des compétences comme les
tiennes
ça doit se vendre à prix d'or.
Merci
(Je reviendrais peut-être...:O)))
"FxM" a écrit dans le message de news:Pourquoi est-ce que je *vais te* trouver ...? Non, je *te trouve* ...
Disons qu'il est 1) temps d'apprendre un peu 2) sypa de ne pas faire des
questions à tiroir (mais à qui l'ai-je déjà écrit ... ?) :o)
En fin de macro, c'est à dire :Next a
End If
Next cel
---> ICI <---End With
End Sub
Tu insères le code :
a) si tu ne veux que trier les colonnes :
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
b) si tu veux trier et enlever les doublons
For col = 5 To 7
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
For a = .Cells(65536, col).End(xlUp).Row To 2 Step -1
If .Cells(a, col).Value = .Cells(a - 1, col) Then
.Cells(a, col).ClearContents
End If
Next a
.Columns(col).Select
Selection.Sort Key1:=Range(Cells(1, col).Address),
Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Next col
Et comme d'hab, tu feras attention aux coupures de ligne. Profites pour
dire à ton patron que les heures du dimanche sontà +50%. J'ai déjà
largement fait les miennes durant la semaine.
@+
FxMC'est encore moi... décidemment tu vas me trouver chi...
J'ai des doublons dans les colonnes E, F, G et il faudrait les trier...
oui je sais j'y connais rien.
Merci
Yvan
"FxM" a écrit dans le message de news:
#Voici le résultat des courses.
Dans le classeur en question :
Alt-F11 | insertion | module
Sub test()
'feuille
feu_arr = "feuil1"
'cellules d'entrée
plage_cel = "A1:C2000"
'textes à chercher
arr_texte = Array("loi", "réglement", "décret")
'avec la feuille
With Sheets(feu_arr)
'parcourir toutes les cellules
For Each cel In .Range(plage_cel)
'si elle n'est pas vide
If Not IsEmpty(cel) Then
'quel est le contenu
celT = cel.Text
'parcourir la liste des textes à chercher
For a = 0 To UBound(arr_texte)
'pos = 0 = texte absent, sinon position du texte
pos = InStr(1, UCase(celT), UCase(arr_texte(a)))
If pos > 0 Then
'dernière ligne
lig = .Cells(65536, 5 + a).End(xlUp).Row
'particularité pour la 1ère ligne
If .Cells(lig, 5 + a) = "" Then lig = 0
'extraire et placer
.Cells(lig + 1, 5 + a) = Mid(celT, pos, Len(celT))
Exit For
End If
Next a
End If
Next cel
End With
End Sub
Voici la macro dont je me suis servi pour remplir des fausses données
:
Sub rnd4()
Randomize
feu_arr = "feuil1"
plage_cel = "A1:C2000"
arr_texte = Array("loi", "réglement", "décret")
With Sheets(feu_arr)
For Each cel In Range(plage_cel)
alea = 3 * Rnd()
st1 = "toto toto "
st2 = " du 12 de cne kahd zuh "
On Error Resume Next
txt = Mid(st1, Rnd() * Len(st1), Rnd() * Len(st1)) &
arr_texte(Int(alea)) & Mid(st2, Rnd() * Len(st2), Rnd() * Len(st2))
On Error GoTo 0
cel.Value = txt
Next cel
End With
End Sub
Le tout testé sous XL2K/Win98SE.
@+
FxMExcuses...Clarifions la situation :Où sont tes données d'entrée :
- y a-t-il UN fichier ou PLUSIEURS fichiers ? UN FICHIER
-> son nom est ... FichierNimporte.xls
- y a-t-il UNE feuille ou PLUSIEURS feuilles ? UNE FEUILLE
-> son nom est ...Feuil1
- y a-t-il UNE zone ou PLUSIEURS zones : UNE PLAGE (par ex.
A1:C2000)
-> leur(s) adresse(s) est(sont) ...
Où voudrais-tu les données en sortie :
nom de feuille : .... LA MEME (Feuil1)
Colonne E : tout ce qui démarre par "Loi" : OUI
Colonne F : tout ce qui démarre par "Réglement" : OUI
Colonne G : tout ce qui démarre par "Décret" : OUI
S'il y en a d'autre, c'est le moment ou jamais de le dire !
-> A partir de quelle ligne doit-on écrire (titre en ligne 1?) LIGNE
1
(pas de titre)
yvan