compter occurences dans colonne

J

jean

Guest
bonjour les amis; un p'tit coup de pouce svp merci
j'ai le pb suivant à régler avec un code vba : j'ai dans feuil1
colonne 1 colonne 2 colonne 3
nom date départ date retour
toto 20/11/2002 25/11/2002
tutu 01/12/2002 10/12/2002
toto 15/12/2002 25/12/2002
comment réaliser un code vba pour rechercher le nom toto dans toutes les lignes où il apparaît, extraire les lignes entières où le nom toto est présent et copier dans une autre feuille uniquement les lignes où toto est présent; ceci est bien sùr valable pour tutu où x nom qui peuvent revenir plusieurs fois en colonne 1 - j'espère être assez clair - merci de votre aide précieuse
 
A

andré

Guest
Salut Jean,

Pas besoin de code vba, j'espère que l'exemple ci-joint te conviendra.
Click sur B5 et choisis : le résultat s'affiche à droite.
C'est pour la facilité de lecture que je l'ai mis sur la même feuille.
Si tu ne t'en sors pas (tu ne serais pas le premier, n'est-ce-pas Moa), je t'expliquerai plus en détail.

André.
 

Pièces jointes

  • tritotuta.xls
    20 KB · Affichages: 96
@

@+Thierry

Guest
Bonjour André

On dit "Blad1" "Blad2" pour Feuil1, Feuil2 ...... Ce qui signifie que tu dois convertir toutes les macros avec des références style "Sheets("feuil1").

Comme quoi, il est mieux pour des codes démo, d'utiliser le numéro d'item
Sheets(1)...

Rien à voir avec la question de Jean.. Mais bon... Un remarque perso...

Aller Bonne Journée

PS si Jean tu veux avoir la même chose que André te propose mais avec un report des Valeurs seules sur d'autres feuilles, je dois avoir des codes VBA, suffit de dire.

@+Thierry
 
A

andré

Guest
Salut Thierry,

Je ne comprends pas ta remarque, serais-tu déjà bien réveillé ?
Je crois avoir répondu excatement à la question de Jean, et de plus il n'y a pas de macros dans mon exemple.
Il m'étonne aussi que tu puisses retrouver des blad1, blad2, ... puisque qu'Excel traduit normalement ces données, ainsi que les formules.
C'est vendredi, donc je t'excuse.

André.
 
@

@+Thierry

Guest
Re Bonjour André,


Non non je ne parlais pas de ton fichier d'ailleurs je dis "Rien à voir avec la question de Jean.. Mais bon... Un remarque perso..."

C'est juste qu'en ouvrant ton classeur ce matin j'ai vu 3 sheets nommées "Blad1, Blad2, Blad3" (Pour çà Excel ne change pas les noms)

Ma remarque voulait dire de manière générale pour toi André et les autres utilisateurs de Excel dans d'autre langues, si ici (dans ce forum) ils copient/collent un code VBA ayant des références de feuilles dans les codes du styles Sheets("Feuil1").select ... Ils doivent soit renommer une "blad1" en "Feuil1" soit modifier le code... D'où ma réflexion personnelle de faire référence au numéro d'item de la feuille plutôt qu'à son nom...

Voilà, ce n'était pas en rapport avec ta réponse, c'était juste une remarque personnelle pour les codes démo que l'on copie/colle sur un nouveau classeur... en français par défaut on aura 3 feuilles "Feuil1, Feuil2, Feuil3" en Néerlandais "Blad1, Blad2, Blad3" et English "Sheet1, Sheet2, Sheet3"...
Donc le mieux est de faire référence à partir de l'index comme ceci :
Sheets(1) qui marchera sur toutes les version d'Excel sans modif...

Voilà c'est tout, désolé d'avoir interrompu ce fil !!! avec une remarque perso que je me suis faites an buvant mon café ce matin...

Bon appétit
@+Thierry
 
J

jean

Guest
merci andré pour tes formules de recherchev et max ça marche au poil mais je voudrais transporter tout ça en vba car ces recherches/tris rentrent dans le cadre d'un prog.complet - je vais peut-être me tourner vers thierry qui m'a proposé son aide également mais le fichier xls fait plus de 200 ko - bye
 
J

jean

Guest
grand merci à TI pour MAJ du fichier d'andré mais même remarque, je dois traduire tout ça en vba pour mon prog.en cours - merci les amis pour le temps passé à aider les passionnés d'excel et vba - jean
 
A

andré

Guest
Que suis-je bête !
Si tu mets tes cellules en couleur (voir méthode sous un de mes autres post) et puis que tu emploies une des méthodes reprises sous le dernier post de STéphane, tu devrais y arriver.
Bonne chance.
 
@

@+Thierry

Guest
Re-Bonjour Jean, André et Ti

Bon en VBA il y a plusieurs moyens, un d'entre eux...

En admettant que tu aies nommé ta feuille de données "Database" et tes feuilles de réception "toto" "tutu" etc (la variable est utilisée pour retourner le nom de la feuille de réception et y inscrire les résultats de la recherche...

En bonus... par exemple si la feuille "AZERTI" n'existe pas alors que des données "AZERTI" existent en feuille database elle sera créée par la macro)

Sub Chercher()
Dim LigneCollect As Integer
Dim LigneSource As Integer
Dim RECHERCE As String

RECHERCHE = InputBox("Votre recherche ? (attention aux Majuscules/Minuscules) ")

report:
Sheets("Database").Select
Range("A1", Range("A1").End(xlDown)).Select
For LigneSource = 1 To Selection.Cells.Count
If Cells(LigneSource, 1).Value = RECHERCHE Then
On Error GoTo Sortie
LigneCollect = Sheets(RECHERCHE).Range("a65536").End(xlUp).Row + 1
Sheets(RECHERCHE).Range("A" & LigneCollect & ":C" & LigneCollect).Value = _
Sheets("Database").Range("A" & LigneSource & ":C" & LigneSource).Value
End If
Next LigneSource
Exit Sub
Sortie:
MsgBox "La feuille :" & RECHERCHE & " n'existe pas et va être ajoutée au classeur"
Sheets.Add
ActiveSheet.Name = RECHERCHE
Sheets("Database").Select
GoTo report
End Sub

Pour la démo j'ai utilisé une "InputBox" pour initialiser la variable mais on peut avoir la cellule active ou une listbox etc...

Si tu veux savoir autres chose dans le traitement que tu ne comprendrais pas tiens moi au courant

Bon Après midi...
@+Thierry
 
J

jean

Guest
merci thierry pour le code vba que je vais essayer d'adapter au petit prog en cours - je suis agréablement surpris de votre disponibilité à tous sur ce forum - j'ai mis dans ta boîte un fichier "ouvrés.xls" car trop grand pour le forum - ne t'embête pas avec ça et trash le - bye - bon week-end à tous - jean
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12