Problème excel

Résolu
skyslaught Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
skyslaught Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

ça fait un moment que je me creuse la tête et ça fume un peu.
J'aimerais savoir si excel peut me donner la ligne de la 1ere donnée d'une colonne (DZ) qui vérifie ("*"&"-"&"*") et ainsi de suite pour la 2ème donnée puis la 3ème, etc...
parce qu'en faisant :

=NB.SI(DZ$3:DZ$207;"*"&"-"&"*")

J'ai le nombre total de données qui vérifie ("*"&"-"&"*") mais sinon pour ce que je cherche j'ai du mal.

il faut savoir qu'il y a des formules du type :

=SI(DX6<>DU$2;"";RECHERCHEV(A6;A$3:A$207;1;0))

dans la plage (DZ$3:DZ$207) qui me donne des données du style (6 253-4) ou (5204-8) ou des emplacements vide comme le confirme ("") dans la fonction si juste au dessus mais j'ai aussi 21 emplacements vides sans formule dans cette plage.

si quelqu'un a une solution par une ou plusieurs formule elle est la bienvenue !

Merci.
A voir également:

6 réponses

hich24 Messages postés 1635 Date d'inscription   Statut Membre Dernière intervention   753
 
c'est pas tout a fait claire tu peut mettre un exemple sur www.cijoint.com
0
koolwan Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,
Voici ma petite contribution :
Supposant que les données sont sur la colonne A et qu'on a 20 lignes de données.
Pour chercher le premier emplacement où on a le "-" on peut utiliser la formule "=RECHERCHEV("*-*";A1:B20;2;0)" en mettant dans la colonne B des numéros de 1 à 20.

Si on a le "-" 10 fois, je suppose qu'on aura à refaire la formule 10 fois, en changent la plage de recherche (A1:B20) par la ligne du où on trouver précédemment le"-" +1. je crois que ça va être du travail manuel et ce n'est pas intéressant.

Sinon, si tu es un peu familier avec les macros, c'est du gâteau ! Voici un code pour retrouver les "-" et mettre le numéro de lignes dans la colonne 3. A adapter selon la colonne où tu as les données, la ligne où commence ta plage de cellules, la colonne où tu veux mettre tes numéros de lignes (tu peux aussi afficher un message avec le numéro des lignes …):

Private Sub recherche()
Dim i, j As Integer
j = 1
For i = 1 To 20
If Cells(i, 1).Text Like "*-*" Then
Cells(j, 3).Value = i
j = j + 1
End If
Next
End Sub
0
skyslaught Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
loin de moi l'idée de ne pas te répondre hich24 mais je peux pas me permettre de mettre en ligne des données concernant ma boite. sinon en ce qui concerne la réponse de koolwan :

dans la plage (DZ$3:DZ$207) j'ai de 18 a 25 données contenant "-" aléatoirement répartie chaque jour dans ces 205 lignes

dans une autre colonne "EB" colonne de résultat de 25 lignes donc 25 formules.

exemple : dans "EB1" une formule me cherchant dans la plage (DZ$3:DZ$207) la 1ere donnée qui vérifie ("*"&"-"&"*") en sachant que cette donnée qui est à la ligne "DZ5" aujourd'hui peut se retrouver demain à la ligne "DZ9" donc il faut que quand la 1ere donnée change dans "DZ" il me donne la nouvelle ligne en "EB1" c'est a dire que si aujourd'hui dans "EB1" il me mettait 5 il faut que demain il me mette 9 dans "EB1"

dans "EB2" une formule me cherchant dans la plage (DZ$3:DZ$207) la 2ème donnée qui vérifie ("*"&"-"&"*") et ça change de ligne comme la 1ere donnée

dans "EB3" la 3ème et cela jusqu'a la 25ème.

c'est a dire que les données contenant les "-" ne se trouve jamais a la même place dans les 205 lignes de données de recherche pour les 25 résultats.

est-ce que c'est plus clair maintenant ?
et si c'est pas possible, je pense que je finirais par trouver une échapatoire par une macro comme tu me l'as suggerer mais je voudrais le faire si possible sans !

merci.
0
hich24 Messages postés 1635 Date d'inscription   Statut Membre Dernière intervention   753
 
un petit exemple avec des donnée autres que les reel ( méme avec des nom comme cli1 , patate , soleil1 ,...) en 3 ou 4 ligne avec des commentaire ca pouras resoudre un probléme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
koolwan Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Re salut,
Je crois que j'ai trouvé la solution :
Il faut utiliser la fonction DECALER pour "décaler" la plage de cellules d'un nombre égal au numéro de la ligne où on a trouvé le "-" précédemment. Je m'explique :
Dans la colonne DZ tu as tes données de la ligne 3 à la ligne 207;
Dans la colonne EA on va mettre des numéros de 1 à 205 en face des données.
Dans la colonne EB on va mettre les résultats comme suit:
- dans la cellule EB3 la formule : "=RECHERCHEV("*-*";$DZ$3:$EA$207;2;0)" ; ce qui nous donne par exemple 5 (si le "-" se trouve dans le 5ème élément du tableau)
- dans la cellule EB4 la formule : "=RECHERCHEV("*-*";DECALER($DZ$3:$EA$207;EB3;0);2;0)"; on fait décaler la matrice par le nombre qui a dans EB3 c.à.d. 5 lignes et 0 colonnes.
- on fait glisser cette formule en bas pour la copier sur les cellules adjacentes jusqu'à apparition de #N/A c'est la fin de nos "-". A chaque fois on fait décaler la matrice par le résultat précédent.
J'espère que ça a été clair.
A bientôt.
0
skyslaught Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci pour ta réponse en effet ça marche !
0