probleme de chaine de caractere

J

JB

Guest
Salut tout le monde,

J ai un probleme, je souhaite rechercher le numero de colonne ainsi que le numero de ligne de la valeur d 'une cellule.

Le seul pb c est que mes fonctions de recherche(voire plus loin) recherche uniquement la valeur de la sous chaine et non de la valeur entiere de la cellule.
Si me recherche porte sur US(états-unis) et si dans ma feuile il y a Uranus avant US alors c est les valeurs de lignes et de colonnes de Uranus qui seront trouvé.

Voici le code de mes fonctions de recherche :


Function Recherchecol(MyString As String) As Integer

Dim c
Dim Col0 As Integer


With Sheets("gloss").UsedRange
Set c = Cells.Find(MyString, LookIn:=xlValue)
If Not c Is Nothing Then
Col0 = c.Column
Recherchecol = Col0
End If
End With


End Function

Function recherchelig(machaine As String) As Integer
Dim D
Dim Lig0 As Integer

With Sheets("gloss").UsedRange
Set D = Cells.Find(machaine, LookIn:=xlValue)
If Not D Is Nothing Then
Lig0 = D.Row
recherchelig = Lig0
End If
End With
End Function

voila merci
 
@

@+Thierry

Guest
Bonsoir JB, le Forum

Je ne sais pas si çà fera avancer le Schmilblik, mais une petite macro comme ceci te permettra de faire une liste dans une autre feuille des ocurrences possible dans ta chaine de caractères...

Sub Recherche()
Dim C As Range
Dim Tablo() As String
Dim Text As String
Dim Firstaddress As String
Dim i As Integer, X As Integer

Text = InputBox("Taper le Text Recherché", "Recherche")

With Sheets(1).UsedRange
Set C = .Find(Text, LookIn:=xlValues)
If Not C Is Nothing Then
Firstaddress = C.Address
Do
ReDim Preserve Tablo(i)
Tablo(i) = C.Value
i = i + 1
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Firstaddress
End If
End With

On Error GoTo FIN
For X = 0 To UBound(Tablo)
Sheets(2).Range("A" & X + 1) = Tablo(X)
Next
Exit Sub

FIN:
MsgBox "Valeur : " & Text & " inexistante"
End Sub


Bonne Soirée
@+Thierry
 
M

michel

Guest
Bonjour @+Thierry , Bonjour JB

Je me permets de m'incruster dans ce post ,… chacun son tour …;o)…
Thierry , je travaillais aussi sur le sujet mais j'étais loin d'être arrivé à un résultat aussi avancé que le tien .
J'espère que tu ne m'en voudras pas …Je me suis permis d'utiliser ta procédure et d'ajouter un petit quelque chose pour le projet de JB , qui , si j'ai bien compris , souhaite en plus récupérer les numéros de lignes et de colonne , pour une chaîne de caractère recherchée .

Sub Recherche()
Dim C As Range
Dim Tablo() As String
Dim tableau1() As String
Dim tableau2() As String
Dim Text As String
Dim Firstaddress As String
Dim i As Integer, X As Integer, ligne As Integer, colonne As Integer

Text = InputBox("Taper le Text Recherché", "Recherche")

With Sheets(1).UsedRange
Set C = .Find(Text, LookIn:=xlValues)
If Not C Is Nothing Then
Firstaddress = C.Address
Do
ReDim Preserve Tablo(i), tableau1(ligne), tableau2(colonne)
Tablo(i) = C.Value
tableau1(ligne) = C.Row
tableau2(colonne) = C.Column

i = i + 1
ligne = ligne + 1
colonne = colonne + 1

Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Firstaddress
End If
End With

On Error GoTo FIN
For X = 0 To UBound(Tablo)
Sheets(2).Range("A" & X + 1) = Tablo(X)
Sheets(2).Range("B" & X + 1) = tableau1(X)
Sheets(2).Range("C" & X + 1) = tableau2(X)

Next
Exit Sub

FIN:
MsgBox "Valeur : " & Text & " inexistante"
End Sub


La procédure modifiée renvoie dans les cellules voisines les numéros de ligne et de colonne . Ma bidouille fonctionne mais je ne suis pas sur d'avoir utilisé la syntaxe la plus adaptée…

Bonne journée
Michel
 
@

@+Thierry

Guest
=> DEMO Userform ListBox éphémère / Créé de toute pièce à la Volée en VBA !!

Bonjour Michel, JB et le Forum du Dimanche Aprèm (et des autres jours !!)

Bon très très bien Michel, et bravo pour ton premier Tableau Indexé Séquentiellement !

Oui, oui ! Tu as raison, on peut toujours améliorer, et tant qu'on y est il y a toujours moyen de faire plus... (lol) En fait c'est ce qui me passionne avec Excel / VBA c'est qu'il n'y a de limite qu'à l'imagination !!

Donc en premier lieu, pour te corriger "Texto"

Cette Partie là :

ReDim Preserve Tablo(i), tableau1(ligne), tableau2(colonne)
Tablo(i) = C.Value
tableau1(ligne) = C.Row
tableau2(colonne) = C.Column
i = i + 1
ligne = ligne + 1
colonne = colonne +


Pourrait s'écrire directo comme çà :
ReDim Preserve TabloA(i), TabloB(i), Tablo(i)
TabloA(i) = C.Value
TabloB(i) = C.Row
TabloC(i) = C.Column
i = i + 1

(Initile de faire des variables Colonne et Ligne, "i" étant strictement la même incrémentation)

Mais en fait, le but n'est pas de créer Trois Tableau, mais un seul bidimensionnel, avec plusieurs colonnes.... Là où le bas blesse, c'est que "Redim Préserve" me fait des Misères, je vous laisse découvrir pourquoi dans la "Ultra Démo" ci-jointe...

Car ce coup-ci, j'ai mis le paquet... J'ai eu l'envie, je ne sais pourquoi, il fesait beau pourtant ici ! de faire fabriquer par VBA un UserForm à la Volée, qui va donc gérer toute cette histoire !! lol...

Par contre on est parti bien loin des "Function" que JB souhaitaient arranger... C'est çà le Web on part sur un truc puis on arrive sur un autre !! (mdr)

Enfin voilà, je vous conseille vivement de faire un tour dans ma Dernière Démo !! C'est un sacré boulot juste pour faire un truc si éphémère... Mais comme je dis toujours "Just For The Fun" !

Bonne Fin de Week End à Tous et Toutes

@+Thierry
Take it Easy Just For The Fun​


PS mais où s'arrêtrons nous !! lol
 

Pièces jointes

  • USF_ListBox_A_La_Volee.zip
    47.7 KB · Affichages: 29
M

michel

Guest
Re: => DEMO Userform ListBox éphémère / Créé de toute pièce à la Volée en VBA !!

bonjour JB ,
bonjour @+Thierry

je me doutais bien qu'il y avait des choses à améliorer dans mon petit ajout
merci de l'avoir corrigé .


je viens de tester ta démo et je n'aurai qu'un seul mot ....waaooowww !!!!

impressionnant ta démo @+thierry .
il a fallu que je l'ajuste pour la faire fonctionner sous excel 97 ... mais quel résultat !!!!

encore bravo

bonne soirée
Michel
 
V

Vériland

Guest
Re: => DEMO Userform ListBox éphémère / Créé de toute pièce à la Volée en VBA !!

Hello ce fil et le Forum,

Eh ben!...mais que vois-je...un userform Démo ?...lool

Encore un ?...Mais oui je ne rêve pas, c'est bien çà...et quel userform !...Alors ici y'a même plus à s'fatiguer puisqu'il nous amène directement sur le mot recherché et sur la bonne cellule s'il vous plait...loool

manquerait plus qu'il nous affiche aussi la photo de la personne...lol...enfin...la cellule est déjà jaune et moi j'suis vert...hi hi hi

Mais...jusqu'où irons-nous ?...ben oui comme tu dis...lool...enfin nous on sait mais alors toi par contre une fois lancé...tu vas même finir par battre le nombre de fichier présents en téléchargement là...looool...alors le pack démo 3 n'est pas encore créé qu'il va déjà falloir songer au pack démo 4...re lool

Enfin...tout çà pour te dire que c'est de la démo qu'on...!!!

...Hein quoi ?...oui keskia, vous voyez pas que j'discute non !!??!!

...ah c'est vous Maître Vébéha...

...s'cusez Maître...j'vous avais pas reconnu...loool...oui allez-y...

USF_ListBox_A_La_Volee

Demo_Certifie.gif
Demo_Certifie_02.gif

...voilà...merci Maître Vébéha...

lool...ben dis donc Thierry...il a mis directement les deux prix là...ben on peut dire que tu es vernis toi...nous aussi d'ailleurs...

...bon j'en étais où moi...!!??!!...ah oui...

Alors je disais que c'est le genre de démo qu'on aime bien avoir chez soi çà...

Mais par contre il va nous falloir un certain temps pour l'étudier...j'en connais même qui n'ont pas encore fini de regarder les fichiers du pack N°1...looool...lorsqu'ils arriveront à ce fichier y aura déjà le pack5 en ligne...looool...heureusement que j'veille au classement là...hi hi hi

Bon ben pour moi y'a pas d'blème sur mon excel...çà tourne comme une Horloge...

Allez j'te souhaite de passer une bonne nuit ainsi que le Forum...moi vé dodo
smiley_499.gif


A+Veriland.gif
 
@

@+Thierry

Guest
Re: => DEMO Userform ListBox éphémère / Créé de toute pièce à la Volée en VBA

PS : Mini mimi big

Module1.... Avant Avant dernière ligne

Remplacer :
Titre = Thierry & " Nombre d'Occurrence Trouvée : " & Total + 1

Par :
Titre = Thierry & " Nombre d'Occurrence : " & Total + 1

Sinon le nombre d'occurrence ne s'affiche pas dans le Label du USF...(too big string !! )

Enfin on peut faire sans !
Bonne Nuit
@+Thierry
 
S

steplof

Guest
Bonjour @ tous,

c'est avec beaucoup de plaisir qu'à mon retour de vacances j'ai eu droit à une invitation XLD,
je ne vous oublie pas même si je me fais très discret depuis quelques temps (d'autres projets non informatiques me prennent tout mon temps....

J'ai quand même pu apprécier la prouesse de @+Thierry à sa juste valeur. C'est quand même assez impressionnant. Encore une fois chapeau bas!!

Un grand bonjour à vous tous, et à bientôt pour d'autres aventures.

Steplof.
 
M

Mikey

Guest
probleme de limite a 255 caracteres par cellules

Bonjour,

J'ai fini une macro qui recherche une ou plusieurs chaines de caracteres dans une feuille excel. La macro copie la premiére page (page source) et la posse sur une deuxiéme page en effectuant un traitement pour ne faire apparaitre que les lignes qui match avec le ou les mots cherchés.

Le probléme est que certaines cellules sont tronquées???

Pourquoi?
Quel remede proposez vous??

Mikey
 
@

@+Thierry

Guest
Re: probleme de limite a 255 caracteres par cellules

Salut Mikey, le Fil et le Forum

Ton problème est décrit dans le fil... 255 Caractères... C'est la limite !

Ce qui t'arrive semble tout à fait normal...

Désolé faudra attendre Excel 2005 ! Sinon tu exportes en TXT chaque cellule ! Ou bien tu essaies de les concaténer mais attention tout de même car ce n'est pas vraiment fiable.

Bon Courage
@+Thierry
 

Discussions similaires

Réponses
1
Affichages
168

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87