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

tableau et recherche

5 réponses
Avatar
shillow
Bonjour,

J'ai un tableau avec des noms en colonne R
J'aimerais si possible que une macro me cherche tous les noms de par exemple
madame tartempion et monsieur dugenou de cette colonne r et me classe toute
la ligne sur un autre onglet nommé si madame tartempion ben tartenpion et si
monsieur dugenou ben dugenou

merci de votre aide par avance
et tous mes voeux pour cette année 2010

stef

5 réponses

Avatar
FFO
Salut à toi

Soit l'onglet "Tableau" avec l'ensemble des données
Je te propose ceci :

For i = 1 to sheets.Count
If Sheets(i).Name = "ben tartenpion" Then
tartenpion = i
End If
If Sheets(i).Name = "ben dugenou" Then
dugenou = i
End If
Next
Do While j < Sheets("Tableau").Range("R2", "R" &
Sheets("Tableau").Range("R65535").End(Xlup).Row+1)
If Sheets("Tableau").Range("R" & j)= "madame tartempion" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets(tartenpion).Range("A"
& Sheets(tartenpion).Range("R65535").End(Xlup).Offset(1,0).Row)
End If
If Sheets("Tableau").Range("R" & j)= "monsieur dugenou" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets(dugenou).Range("A" &
Sheets(dugenou).Range("R65535").End(Xlup).Offset(1,0).Row)
End If
j=j+1
Loop

Je n'ai pas essayé mais celà devrait fonctionner
N'oublies pas de bien nommer ta feuille de données "Tableau" ou de modifier
tous les mots "Tableau" du code avec le nom attribué de cette feuille

Donnes moi des nouvelles !!!!
Avatar
LSteph
Bonjour,

C'est "ben" compliqué!
Je ne dois pas avoir la vue aussi claire que ce que je lis dans le
fil, déjà me souviens plus d'avoir connu un "ben dugenou"
et me viendrait pas à l'idée que cela corresponde à sheet.name
"ben" c'est qu'on sait "pô" non plus pourquoi Madame ou Monsieur
Tu parle de Nom ou de Civilité + Nom .. Prénom??

En fait clairement est-ce-que ta question "serait y po ben que" tu as
de collés des Monsieur ou Madame et leur nom (et peut être aussi le
prénom c'est à préciser)
et que tu veuille les séparer pour remettre convenablement Civilité et
Nom dans une cellule respective
ou peux tu confirmer si l'onglet s'appellera aiussi Madame Tartempioon
ou "ben" seulement tartempion
Faut-il creer les onglets du même nom s'il n'existe pas?
Doit on considerer si le nom est long qu'on ne prend que les n
premiers caracteres (<31)

Ou "ben" en http://cjoint.com mets un exemple de ton classeur et ce
que tu veux obtenir.

(Ca sera "ben" plus simple)

Cordialement.

--
lSteph


On 6 jan, 08:58, "shillow" wrote:
Bonjour,

J'ai un tableau avec des noms en colonne R
J'aimerais si possible que une macro me cherche tous les noms de par exem ple
madame tartempion et monsieur dugenou de cette colonne r et me classe tou te
la ligne sur un autre onglet nommé si madame tartempion ben tartenpion et si
monsieur dugenou ben dugenou

merci de votre aide par avance
et tous mes voeux pour cette année 2010

stef


Avatar
FFO
Rebonjour à toi

Ma proposition peut être simplifiée ainsi :

Do While j < Sheets("Tableau").Range("R2", "R" &
Sheets("Tableau").Range("R65535").End(Xlup).Row+1)
If Sheets("Tableau").Range("R" & j)= "madame tartempion" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets("ben
tartenpion").Range("A"
& Sheets("ben tartenpion").Range("R65535").End(Xlup).Offset(1,0).Row)
End If
If Sheets("Tableau").Range("R" & j)= "monsieur dugenou" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets("ben
dugenou").Range("A" &
Sheets("ben dugenou").Range("R65535").End(Xlup).Offset(1,0).Row)
End If
j=j+1
Loop

La première boucle est inutile
Mille excuses

Fais des essais et dis moi !!!!!
Avatar
michdenis
Bonjour,

Si je peux me permettre une suggestion...
l'indentation du code rend la lecture d'un code
plus simple... Excel se fout de la présentation
du code mais pour le lecteur, c'est autre chose !

Voici la présentation de ta macro indentée en
espérant que je n'ai pas modifié son contenu !

'---------------------------------------
Sub test()

Dim DerLig As Long, j As Long
Dim Sh As Worksheet, Sh1 As Worksheet
Set Sh = Sheets("tartempion")
Set Sh1 = Sheets("DuGenou")

j = 1
With Sheets("Tableau")
DerLig = .Range("R65536").End(xlUp).Row
Do While j < DerLig
With .Range("R" & j)
If .Value = "madame tartempion" Then
.EntireRow.Copy _
Sh.Range("A" & Sh.Range("R65535") _
.End(xlUp).Offset(1, 0).Row)
ElseIf .Value = "monsieur dugenou" Then
.EntireRow.Copy _
Sh1.Range("A" & Sh1.Range("R65535") _
.End(xlUp).Offset(1, 0).Row)
End If
End With
j = j + 1
Loop
End With
End Sub
'---------------------------------------



"FFO" a écrit dans le message de groupe de discussion :

Rebonjour à toi

Ma proposition peut être simplifiée ainsi :

Do While j < Sheets("Tableau").Range("R2", "R" &
Sheets("Tableau").Range("R65535").End(Xlup).Row+1)
If Sheets("Tableau").Range("R" & j)= "madame tartempion" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets("ben
tartenpion").Range("A"
& Sheets("ben tartenpion").Range("R65535").End(Xlup).Offset(1,0).Row)
End If
If Sheets("Tableau").Range("R" & j)= "monsieur dugenou" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets("ben
dugenou").Range("A" &
Sheets("ben dugenou").Range("R65535").End(Xlup).Offset(1,0).Row)
End If
j=j+1
Loop

La première boucle est inutile
Mille excuses

Fais des essais et dis moi !!!!!
Avatar
shillow
MERCI A VOUS C EST GENIAL


"michdenis" a écrit dans le message de news:

Bonjour,

Si je peux me permettre une suggestion...
l'indentation du code rend la lecture d'un code
plus simple... Excel se fout de la présentation
du code mais pour le lecteur, c'est autre chose !

Voici la présentation de ta macro indentée en
espérant que je n'ai pas modifié son contenu !

'---------------------------------------
Sub test()

Dim DerLig As Long, j As Long
Dim Sh As Worksheet, Sh1 As Worksheet
Set Sh = Sheets("tartempion")
Set Sh1 = Sheets("DuGenou")

j = 1
With Sheets("Tableau")
DerLig = .Range("R65536").End(xlUp).Row
Do While j < DerLig
With .Range("R" & j)
If .Value = "madame tartempion" Then
.EntireRow.Copy _
Sh.Range("A" & Sh.Range("R65535") _
.End(xlUp).Offset(1, 0).Row)
ElseIf .Value = "monsieur dugenou" Then
.EntireRow.Copy _
Sh1.Range("A" & Sh1.Range("R65535") _
.End(xlUp).Offset(1, 0).Row)
End If
End With
j = j + 1
Loop
End With
End Sub
'---------------------------------------



"FFO" a écrit dans le message de groupe de
discussion :

Rebonjour à toi

Ma proposition peut être simplifiée ainsi :

Do While j < Sheets("Tableau").Range("R2", "R" &
Sheets("Tableau").Range("R65535").End(Xlup).Row+1)
If Sheets("Tableau").Range("R" & j)= "madame tartempion" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets("ben
tartenpion").Range("A"
& Sheets("ben tartenpion").Range("R65535").End(Xlup).Offset(1,0).Row)
End If
If Sheets("Tableau").Range("R" & j)= "monsieur dugenou" Then
Sheets("Tableau").Range("R" & j).Entirerow.Copy Sheets("ben
dugenou").Range("A" &
Sheets("ben dugenou").Range("R65535").End(Xlup).Offset(1,0).Row)
End If
j=j+1
Loop

La première boucle est inutile
Mille excuses

Fais des essais et dis moi !!!!!