Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de
regrouper dans la m=EAme cellule toutes les valeurs qui se trouvent sur
une plage (contenant parfois des cellules vides), s=E9par=E9es par un seul
espace.
La technique " =3DB1&" "&A2 " fonctionne bien mais lorsque j'ai 10 cases
de vides =E0 la suite =E7a me fait un gros blanc.
Et pour compliquer un peu l'affaire, j'aimerais ins=E9rer le texte
uniquement si la cellule d'=E0 c=F4t=E9 correspond =E0 un crit=E8re d=E9fin=
i.
Pour illustrer =E7a avec un exemple :
En colonnes A1:A100 des crit=E8res de s=E9lection : H / F
En colonnes B1:B100 des pr=E9noms (multitude de possibilit=E9s) : Pierre
Paul Jacques Marie C=E9cile etc ...
J'aimerais regrouper dans la m=EAme cellule (s=E9par=E9s par des espaces)
tous les pr=E9noms de sexe masculin.
Salut à toi à partir de la ligne 2 Colonne A le critère Colonne B les Prénoms
Je te propose ce code à mettre dans un module standard :
i = 2 Do While i < Range("A65535").End(xlUp).Row + 1 If Range("A" & i) = "H" Then If Range("B" & i) <> "" Then Liste1 = Liste1 & " " & Range("B" & i) End If End If If Range("A" & i) = "F" Then If Range("B" & i) <> "" Then Liste2 = Liste2 & " " & Range("B" & i) End If End If i = i + 1 Loop Range("C2") = Liste1 Range("C3") = Liste2
Résultat en C2 et C3
Fais des essais et dis moi !!!!!!
Salut à toi
à partir de la ligne 2
Colonne A le critère
Colonne B les Prénoms
Je te propose ce code à mettre dans un module standard :
i = 2
Do While i < Range("A65535").End(xlUp).Row + 1
If Range("A" & i) = "H" Then
If Range("B" & i) <> "" Then
Liste1 = Liste1 & " " & Range("B" & i)
End If
End If
If Range("A" & i) = "F" Then
If Range("B" & i) <> "" Then
Liste2 = Liste2 & " " & Range("B" & i)
End If
End If
i = i + 1
Loop
Range("C2") = Liste1
Range("C3") = Liste2
Salut à toi à partir de la ligne 2 Colonne A le critère Colonne B les Prénoms
Je te propose ce code à mettre dans un module standard :
i = 2 Do While i < Range("A65535").End(xlUp).Row + 1 If Range("A" & i) = "H" Then If Range("B" & i) <> "" Then Liste1 = Liste1 & " " & Range("B" & i) End If End If If Range("A" & i) = "F" Then If Range("B" & i) <> "" Then Liste2 = Liste2 & " " & Range("B" & i) End If End If i = i + 1 Loop Range("C2") = Liste1 Range("C3") = Liste2
Résultat en C2 et C3
Fais des essais et dis moi !!!!!!
FS
Bonjour,
Une autre approche avec une fonction perso :
'=Úns un module standard du classeur qui t'intéresse Function TEXTE_SI(PlageCritère, Critère, PlageRecherche) Dim cell, x&, S$ x = 1 For Each cell In PlageCritère If cell.Value = Critère Then If PlageRecherche.Range("A" & x).Value <> "" Then _ S = S & PlageRecherche.Range("A" & x).Value & " " End If x = x + 1 Next cell TEXTE_SI = Trim(S) End Function '===================================================== Dans la cellule où tu veux ta liste, pour récupérer les prénoms (dans la plage B1:B10) masculins (sexe en A1:A10) :
=texte_si(A1:A10;"h";B1:B10)
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
T Fred a écrit :
Bonjour, J'aurais 2 questions :
Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de regrouper dans la même cellule toutes les valeurs qui se trouvent sur une plage (contenant parfois des cellules vides), séparées par un seul espace. La technique " ±&" "&A2 " fonctionne bien mais lorsque j'ai 10 cases de vides à la suite ça me fait un gros blanc.
Et pour compliquer un peu l'affaire, j'aimerais insérer le texte uniquement si la cellule d'à côté correspond à un critère défini.
Pour illustrer ça avec un exemple : En colonnes A1:A100 des critères de sélection : H / F En colonnes B1:B100 des prénoms (multitude de possibilités) : Pierre Paul Jacques Marie Cécile etc ...
J'aimerais regrouper dans la même cellule (séparés par des espaces) tous les prénoms de sexe masculin.
Merci pour votre aide
Fred
Bonjour,
Une autre approche avec une fonction perso :
'=Úns un module standard du classeur qui t'intéresse
Function TEXTE_SI(PlageCritère, Critère, PlageRecherche)
Dim cell, x&, S$
x = 1
For Each cell In PlageCritère
If cell.Value = Critère Then
If PlageRecherche.Range("A" & x).Value <> "" Then _
S = S & PlageRecherche.Range("A" & x).Value & " "
End If
x = x + 1
Next cell
TEXTE_SI = Trim(S)
End Function
'=====================================================
Dans la cellule où tu veux ta liste, pour récupérer les prénoms (dans la
plage B1:B10) masculins (sexe en A1:A10) :
=texte_si(A1:A10;"h";B1:B10)
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
T Fred a écrit :
Bonjour,
J'aurais 2 questions :
Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de
regrouper dans la même cellule toutes les valeurs qui se trouvent sur
une plage (contenant parfois des cellules vides), séparées par un seul
espace.
La technique " ±&" "&A2 " fonctionne bien mais lorsque j'ai 10 cases
de vides à la suite ça me fait un gros blanc.
Et pour compliquer un peu l'affaire, j'aimerais insérer le texte
uniquement si la cellule d'à côté correspond à un critère défini.
Pour illustrer ça avec un exemple :
En colonnes A1:A100 des critères de sélection : H / F
En colonnes B1:B100 des prénoms (multitude de possibilités) : Pierre
Paul Jacques Marie Cécile etc ...
J'aimerais regrouper dans la même cellule (séparés par des espaces)
tous les prénoms de sexe masculin.
'=Úns un module standard du classeur qui t'intéresse Function TEXTE_SI(PlageCritère, Critère, PlageRecherche) Dim cell, x&, S$ x = 1 For Each cell In PlageCritère If cell.Value = Critère Then If PlageRecherche.Range("A" & x).Value <> "" Then _ S = S & PlageRecherche.Range("A" & x).Value & " " End If x = x + 1 Next cell TEXTE_SI = Trim(S) End Function '===================================================== Dans la cellule où tu veux ta liste, pour récupérer les prénoms (dans la plage B1:B10) masculins (sexe en A1:A10) :
=texte_si(A1:A10;"h";B1:B10)
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
T Fred a écrit :
Bonjour, J'aurais 2 questions :
Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de regrouper dans la même cellule toutes les valeurs qui se trouvent sur une plage (contenant parfois des cellules vides), séparées par un seul espace. La technique " ±&" "&A2 " fonctionne bien mais lorsque j'ai 10 cases de vides à la suite ça me fait un gros blanc.
Et pour compliquer un peu l'affaire, j'aimerais insérer le texte uniquement si la cellule d'à côté correspond à un critère défini.
Pour illustrer ça avec un exemple : En colonnes A1:A100 des critères de sélection : H / F En colonnes B1:B100 des prénoms (multitude de possibilités) : Pierre Paul Jacques Marie Cécile etc ...
J'aimerais regrouper dans la même cellule (séparés par des espaces) tous les prénoms de sexe masculin.
Merci pour votre aide
Fred
T Fred
On 23 juil, 14:34, FFO wrote:
Salut à toi à partir de la ligne 2 Colonne A le critère Colonne B les Prénoms
Je te propose ce code à mettre dans un module standard :
i = 2 Do While i < Range("A65535").End(xlUp).Row + 1 If Range("A" & i) = "H" Then If Range("B" & i) <> "" Then Liste1 = Liste1 & " " & Range("B" & i) End If End If If Range("A" & i) = "F" Then If Range("B" & i) <> "" Then Liste2 = Liste2 & " " & Range("B" & i) End If End If i = i + 1 Loop Range("C2") = Liste1 Range("C3") = Liste2
Résultat en C2 et C3
Fais des essais et dis moi !!!!!!
Salut FFO et merci pour ta réponse.
Je viens d'éssayer et il y a un bug à cet endroit là : If Range("A" & i) = "H" Then
Malheureusement je n'y connais rien à ce language donc je ne sais pas du tout commment réparer ça =(
On 23 juil, 14:34, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
à partir de la ligne 2
Colonne A le critère
Colonne B les Prénoms
Je te propose ce code à mettre dans un module standard :
i = 2
Do While i < Range("A65535").End(xlUp).Row + 1
If Range("A" & i) = "H" Then
If Range("B" & i) <> "" Then
Liste1 = Liste1 & " " & Range("B" & i)
End If
End If
If Range("A" & i) = "F" Then
If Range("B" & i) <> "" Then
Liste2 = Liste2 & " " & Range("B" & i)
End If
End If
i = i + 1
Loop
Range("C2") = Liste1
Range("C3") = Liste2
Résultat en C2 et C3
Fais des essais et dis moi !!!!!!
Salut FFO et merci pour ta réponse.
Je viens d'éssayer et il y a un bug à cet endroit là :
If Range("A" & i) = "H" Then
Malheureusement je n'y connais rien à ce language donc je ne sais pas
du tout commment réparer ça =(
Salut à toi à partir de la ligne 2 Colonne A le critère Colonne B les Prénoms
Je te propose ce code à mettre dans un module standard :
i = 2 Do While i < Range("A65535").End(xlUp).Row + 1 If Range("A" & i) = "H" Then If Range("B" & i) <> "" Then Liste1 = Liste1 & " " & Range("B" & i) End If End If If Range("A" & i) = "F" Then If Range("B" & i) <> "" Then Liste2 = Liste2 & " " & Range("B" & i) End If End If i = i + 1 Loop Range("C2") = Liste1 Range("C3") = Liste2
Résultat en C2 et C3
Fais des essais et dis moi !!!!!!
Salut FFO et merci pour ta réponse.
Je viens d'éssayer et il y a un bug à cet endroit là : If Range("A" & i) = "H" Then
Malheureusement je n'y connais rien à ce language donc je ne sais pas du tout commment réparer ça =(
T Fred
On 23 juil, 15:20, FS wrote:
Bonjour,
Une autre approche avec une fonction perso :
'=Úns un module standard du classeur qui t'intéresse Function TEXTE_SI(PlageCritère, Critère, PlageRecherche) Dim cell, x&, S$ x = 1 For Each cell In PlageCritère If cell.Value = Critère Then If PlageRecherche.Range("A" & x).Value <> "" Then _ S = S & PlageRecherche.Range("A" & x).Value & " " End If x = x + 1 Next cell TEXTE_SI = Trim(S) End Function '======================== ========================= =====
Dans la cellule où tu veux ta liste, pour récupérer les prénoms ( dans la plage B1:B10) masculins (sexe en A1:A10) :
=texte_si(A1:A10;"h";B1:B10)
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel :http://frederic.sigonneau.free.fr/
T Fred a écrit :
> Bonjour, > J'aurais 2 questions :
> Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de > regrouper dans la même cellule toutes les valeurs qui se trouvent sur > une plage (contenant parfois des cellules vides), séparées par un s eul > espace. > La technique " ±&" "&A2 " fonctionne bien mais lorsque j'ai 10 case s > de vides à la suite ça me fait un gros blanc.
> Et pour compliquer un peu l'affaire, j'aimerais insérer le texte > uniquement si la cellule d'à côté correspond à un critère d éfini.
> Pour illustrer ça avec un exemple : > En colonnes A1:A100 des critères de sélection : H / F > En colonnes B1:B100 des prénoms (multitude de possibilités) : Pierr e > Paul Jacques Marie Cécile etc ...
> J'aimerais regrouper dans la même cellule (séparés par des espace s) > tous les prénoms de sexe masculin.
> Merci pour votre aide
> Fred- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup Fred ça marche nickel =)
On 23 juil, 15:20, FS <perso...@nulle.part> wrote:
Bonjour,
Une autre approche avec une fonction perso :
'==dans un module standard du classeur qui t'intéresse
Function TEXTE_SI(PlageCritère, Critère, PlageRecherche)
Dim cell, x&, S$
x = 1
For Each cell In PlageCritère
If cell.Value = Critère Then
If PlageRecherche.Range("A" & x).Value <> "" Then _
S = S & PlageRecherche.Range("A" & x).Value & " "
End If
x = x + 1
Next cell
TEXTE_SI = Trim(S)
End Function
'======================== ========================= =====
Dans la cellule où tu veux ta liste, pour récupérer les prénoms ( dans la
plage B1:B10) masculins (sexe en A1:A10) :
=texte_si(A1:A10;"h";B1:B10)
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :http://frederic.sigonneau.free.fr/
T Fred a écrit :
> Bonjour,
> J'aurais 2 questions :
> Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de
> regrouper dans la même cellule toutes les valeurs qui se trouvent sur
> une plage (contenant parfois des cellules vides), séparées par un s eul
> espace.
> La technique " =B1&" "&A2 " fonctionne bien mais lorsque j'ai 10 case s
> de vides à la suite ça me fait un gros blanc.
> Et pour compliquer un peu l'affaire, j'aimerais insérer le texte
> uniquement si la cellule d'à côté correspond à un critère d éfini.
> Pour illustrer ça avec un exemple :
> En colonnes A1:A100 des critères de sélection : H / F
> En colonnes B1:B100 des prénoms (multitude de possibilités) : Pierr e
> Paul Jacques Marie Cécile etc ...
> J'aimerais regrouper dans la même cellule (séparés par des espace s)
> tous les prénoms de sexe masculin.
> Merci pour votre aide
> Fred- Masquer le texte des messages précédents -
'=Úns un module standard du classeur qui t'intéresse Function TEXTE_SI(PlageCritère, Critère, PlageRecherche) Dim cell, x&, S$ x = 1 For Each cell In PlageCritère If cell.Value = Critère Then If PlageRecherche.Range("A" & x).Value <> "" Then _ S = S & PlageRecherche.Range("A" & x).Value & " " End If x = x + 1 Next cell TEXTE_SI = Trim(S) End Function '======================== ========================= =====
Dans la cellule où tu veux ta liste, pour récupérer les prénoms ( dans la plage B1:B10) masculins (sexe en A1:A10) :
=texte_si(A1:A10;"h";B1:B10)
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel :http://frederic.sigonneau.free.fr/
T Fred a écrit :
> Bonjour, > J'aurais 2 questions :
> Tout d'abord, j'ai beau chercher mais je ne trouve pas le moyen de > regrouper dans la même cellule toutes les valeurs qui se trouvent sur > une plage (contenant parfois des cellules vides), séparées par un s eul > espace. > La technique " ±&" "&A2 " fonctionne bien mais lorsque j'ai 10 case s > de vides à la suite ça me fait un gros blanc.
> Et pour compliquer un peu l'affaire, j'aimerais insérer le texte > uniquement si la cellule d'à côté correspond à un critère d éfini.
> Pour illustrer ça avec un exemple : > En colonnes A1:A100 des critères de sélection : H / F > En colonnes B1:B100 des prénoms (multitude de possibilités) : Pierr e > Paul Jacques Marie Cécile etc ...
> J'aimerais regrouper dans la même cellule (séparés par des espace s) > tous les prénoms de sexe masculin.
> Merci pour votre aide
> Fred- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup Fred ça marche nickel =)
FFO
Rebonjour à toi
Peux tu me transmettre ton document avec la macro qui Bug par ce biais http://www.cijoint.fr/index.php Enlèves les données confidentielles Communiques moi le lien pour le récupérer Merci
"T Fred" wrote:
On 23 juil, 14:34, FFO wrote: > Salut à toi > à partir de la ligne 2 > Colonne A le critère > Colonne B les Prénoms > > Je te propose ce code à mettre dans un module standard : > > i = 2 > Do While i < Range("A65535").End(xlUp).Row + 1 > If Range("A" & i) = "H" Then > If Range("B" & i) <> "" Then > Liste1 = Liste1 & " " & Range("B" & i) > End If > End If > If Range("A" & i) = "F" Then > If Range("B" & i) <> "" Then > Liste2 = Liste2 & " " & Range("B" & i) > End If > End If > i = i + 1 > Loop > Range("C2") = Liste1 > Range("C3") = Liste2 > > Résultat en C2 et C3 > > Fais des essais et dis moi !!!!!!
Salut FFO et merci pour ta réponse.
Je viens d'éssayer et il y a un bug à cet endroit là : If Range("A" & i) = "H" Then
Malheureusement je n'y connais rien à ce language donc je ne sais pas du tout commment réparer ça =(
Rebonjour à toi
Peux tu me transmettre ton document avec la macro qui Bug par ce biais
http://www.cijoint.fr/index.php
Enlèves les données confidentielles
Communiques moi le lien pour le récupérer
Merci
"T Fred" wrote:
On 23 juil, 14:34, FFO <F...@discussions.microsoft.com> wrote:
> Salut à toi
> à partir de la ligne 2
> Colonne A le critère
> Colonne B les Prénoms
>
> Je te propose ce code à mettre dans un module standard :
>
> i = 2
> Do While i < Range("A65535").End(xlUp).Row + 1
> If Range("A" & i) = "H" Then
> If Range("B" & i) <> "" Then
> Liste1 = Liste1 & " " & Range("B" & i)
> End If
> End If
> If Range("A" & i) = "F" Then
> If Range("B" & i) <> "" Then
> Liste2 = Liste2 & " " & Range("B" & i)
> End If
> End If
> i = i + 1
> Loop
> Range("C2") = Liste1
> Range("C3") = Liste2
>
> Résultat en C2 et C3
>
> Fais des essais et dis moi !!!!!!
Salut FFO et merci pour ta réponse.
Je viens d'éssayer et il y a un bug à cet endroit là :
If Range("A" & i) = "H" Then
Malheureusement je n'y connais rien à ce language donc je ne sais pas
du tout commment réparer ça =(
Peux tu me transmettre ton document avec la macro qui Bug par ce biais http://www.cijoint.fr/index.php Enlèves les données confidentielles Communiques moi le lien pour le récupérer Merci
"T Fred" wrote:
On 23 juil, 14:34, FFO wrote: > Salut à toi > à partir de la ligne 2 > Colonne A le critère > Colonne B les Prénoms > > Je te propose ce code à mettre dans un module standard : > > i = 2 > Do While i < Range("A65535").End(xlUp).Row + 1 > If Range("A" & i) = "H" Then > If Range("B" & i) <> "" Then > Liste1 = Liste1 & " " & Range("B" & i) > End If > End If > If Range("A" & i) = "F" Then > If Range("B" & i) <> "" Then > Liste2 = Liste2 & " " & Range("B" & i) > End If > End If > i = i + 1 > Loop > Range("C2") = Liste1 > Range("C3") = Liste2 > > Résultat en C2 et C3 > > Fais des essais et dis moi !!!!!!
Salut FFO et merci pour ta réponse.
Je viens d'éssayer et il y a un bug à cet endroit là : If Range("A" & i) = "H" Then
Malheureusement je n'y connais rien à ce language donc je ne sais pas du tout commment réparer ça =(