comment rechercher une cellule sur une feuille de calcule

julien clerc

XLDnaute Junior
bonjour à tous je cherche une macro afin d'identifier une cellule sur une feuille de calcule sans chercher manuellement car trop long


merci de votre aides
 

julien clerc

XLDnaute Junior
Re : comment rechercher une cellule sur une feuille de calcule

salut robert dan le classeur joint ta macro et mes fameux cellule tu peux remarquer que la cellule 1 2 3 42 45 existe mais le message indique le contraire je suis vraiment perdu dans tous ça :confused:

merci encore
 

Pièces jointes

  • classeur robert.xlsm
    269 KB · Affichages: 33
  • classeur robert.xlsm
    269 KB · Affichages: 35
  • classeur robert.xlsm
    269 KB · Affichages: 37
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : comment rechercher une cellule sur une feuille de calcule

Bonjour le fil, bonjour le forum,

Je sais pas ce que tu fais Julien, si tu es bègue des mains (comme on dit à Sète) ou ou du cerveau !
Chez moi ça marche mais il faut impérativement que la valeur cherchée soit la même que la valeur à trouver. Pas un espace de plus, pas un caractère de plus ! Il y a deux espaces entres 2 et 3 dans "1 2 3 42 45" (Laurent t'avait déjà signalé ce fait dans le post #6!) . Si tu ne tapes pas ces deux espaces dans la boîtes d'entrée, tu auras forcément le message d'échec. C'est pour cela que je te disais de copier une valeur dans le tableau et de la coller dans la boîte d'entrée. Pour que tu vois bien que le code marche.
Si tu veux, tu peux utiliser la fonction Rechercher/Remplacer d'Excel. Tu recherches deux espaces " " et tu les remplaces par un seul espace " ". Ensuite tu refais et enfin tu dis... Ça marche !!!!
 

julien clerc

XLDnaute Junior
Re : comment rechercher une cellule sur une feuille de calcule

alors là je comprend plus rien j'ai remplacé v =
rien ne fonctionne toujours le même message introuvable alors que la cellule est bien présente

:confused:
 

Pièces jointes

  • classeur robert.xlsm
    268.5 KB · Affichages: 39
  • classeur robert.xlsm
    268.5 KB · Affichages: 45
  • classeur robert.xlsm
    268.5 KB · Affichages: 39
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : comment rechercher une cellule sur une feuille de calcule

Bonjour le fil, bonjour le forum,

Pfff... tu serais pas le fil du grand casse-c... toi ? Ça marche impeccable chez moi avec V = "1 2 9 23 45" !...
 

julien clerc

XLDnaute Junior
Re : comment rechercher une cellule sur une feuille de calcule

le fils de .. je c pas , mais le souci est que quand j'essaye avec la combinaison 1 2 3 4 33 enrespectant les espace ça fonctionne parfait sauf que si je remait le meme code sur un autre feuile de calcule plus lourd avec des combinaison de type 17 26 36 39 46
même en respectent les espace j'ai le même code erreur 1004 je suis peut être débile mais c 'est la réalité
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : comment rechercher une cellule sur une feuille de calcule

Bonjour le fil, bonjour le forum,

Écoute Julien on tourne en rond là ! Il y a deux choses bien différentes :
• la référence n'est pas trouvée
• le code plante
D'abord tu te plains que la référence n'est pas trouvée. Finalement tu corriges ton erreur et tu vois que ça marche...Ensuite tu copies le code dans un autre fichier et là c'est le code qui plante. Mais tu ne nous indiques que l'erreur sans dire qu'elle est la ligne qui plante...

La seule chose que je peux dire c'est que tu ne nous donnes pas les moyens de déceler le problème. Mets le fichier qui plante en pièce jointe avec le code qui va avec.
Je n'ai que la version Excel 2003 donc quand j'ouvre un fichier qui contient plus de 256 colonnes et/ou plus de 65536 lignes celles-ci sont supprimées. Dis-moi si tu utilises des données qui dépassent ces limites.
Bref, plus tu en dis, mieux on pourra t'aider...
 

laurent950

XLDnaute Accro
Re : comment rechercher une cellule sur une feuille de calcule

Bonsoir Julien est bonsoir Robert,


En poste 14 la macro fonctionne parfaitement sauf que votre recherche : cf ci-dessous soit 3 12 14 34 35

If tab1(i, J) = CStr("3 12 14 34 35") Then

Ne peux pas exister car c'est pas comme cela que c'est écris dans votre premiere macro VBA qui crée les Numéros (car il y a un double espace entre 12 et 14

soit :
vous sans correction = 3 12 14 34 35
moi aprés correction = 3 12 14 34 35

Vous avez vu la différence Julien ?

Regardez votre premier code qui crée les Numéro !!

Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q // ici les deux espace conscéqutif ==>> n & " " & " " & o

a corigé par

Cells(lin, col) = m & " " & n & " " & o & " " & p & " " & q // ici les deux espace conscéqutif ==>> n & " " & o

Vous garder mon code et vous corrigé votre code est ainsi tous fonctionnera comme il faut.

ps : dans la macro si jointe j'ai ajouter le double espace que vous avez pas vu pour s'adapter a votre code, mais a présent que vous savais tous sera rectifié.

Bon Julien

Fichier = CodeTousCorrigéMaintenantFinal // j'ai corrigé votre code dans votre module (suppression du double espace généré a la base + mon code qui fonctionne très bien

Pour Robert :

J'ai travailler sur les Modules de classes sur Excel VBA est aussi sur Le langage JAVA je suis entrain de fairel'approche sur le langage programation Orienté Objet est je suis pas très loin de comprendre la signification de (SET) Franchement je n'en suis pas très loin mais je veuxpas encore raconté des choses dont je suis pas sur.

je vous montrais cela avec détail est serais heureux de partager avec vous (C'eest hyper puissant avec un réel interet mais pour l'instant je dois encore apprendre pour être assez fort est détecter les choses qui vont pas est arriver a cibler rapidement des choses quivont pas ou incohérente, je suis entrain de faire le tri dans lesexplication de chacun pour arriver a l'écriture du langage dans sa forme la plus pur est correcte en me forcant de de typé chacune des variable comme (en Programmation Java)

Merci a vous Robert et à Julien qui dois se concentrer sur son code est faire des tests pour arrivé a ciblé des petits défaut qui peuvent faire gagné du temps.


Laurent
 

Pièces jointes

  • TrouveVariableTableauJulienDoubleEspaceCorrection.xlsm
    216 KB · Affichages: 23
  • CodeTousCorrigéMaintenantFinal.xlsm
    140.1 KB · Affichages: 33
  • CodeTousCorrigéMaintenantFinal.xlsm
    140.1 KB · Affichages: 33
  • CodeTousCorrigéMaintenantFinal.xlsm
    140.1 KB · Affichages: 29
Dernière édition:

julien clerc

XLDnaute Junior
Re : comment rechercher une cellule sur une feuille de calcule

enfin ça fonctionne ! tu vois robert je suis pas le fils a casse... :) mais c'est la base de mon code qui était incorrecte ....
en tous merci me m'avoir supporté je tés bien cassé la tête merci de ta patience et du temps que tu ma réservé .
gros merci à laurent l'expert :D ton code fonctionne parfaitement il y'a juste les cellule qui contienne des gros numéros qui font planté le code "15 33 36 41 47" en revanche quand il un petit numéros dans la cellule recherché ça fonctionne "1 33 36 41 47"peut être que les gros nums décale les espaces je sais pas ... c pas grave je les fais manuellement ..
merci encore à vous vous êtes très sympas !

merci encore
 

laurent950

XLDnaute Accro
Re : comment rechercher une cellule sur une feuille de calcule

Bonsoir Julien,

Vos deux codes :
- "15 33 36 41 47"
- "1 33 36 41 47"

N'existe pas tous simplement.

VB:
Sub trouve()

 lin = Range("A65536").End(xlUp).Row
 col = Range("A1").End(xlToRight).Column

Dim F1 As Worksheet
Set F1 = Worksheets("Feuil1")

' Variable
Dim L As Integer
Dim C As Integer
Dim Vrai As Boolean
Vrai = False

tab1 = F1.Range(F1.Cells(1, 1), F1.Cells(lin, col))

For i = 1 To UBound(tab1, 1)
    For J = 1 To UBound(tab1, 2)
    
        If tab1(i, J) = CStr("15 33 36 41 47") Then '
            MsgBox tab1(i, J)
            L = i
            C = J
            Vrai = True
        Else
        End If
    
    Next J
Next i

If Vrai = True Then
' Selection de la cellule
F1.Cells(L, C).Select
Else
MsgBox "Le code n'existe pas"
End If

End Sub

Ps : un petit test Boolean (Vrai ou faut) très utile parfois

Laurent
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : comment rechercher une cellule sur une feuille de calcule

Bonsoir.
À propos des Set. Le fin mot de l'histoire c'est qu'en fait une variable objet n'est au fond qu'une variable destinée à recevoir une adresse. Et elle est vide au départ. Le Set permet de lui affecter cette adresse en la considérant donc pour ce qu'elle est réellement et non pas comme en dehors de cela où la variable se réfère toujours par convention à l'objet pointé par cette adresse.
Cordialement.
 

julien clerc

XLDnaute Junior
Re : comment rechercher une cellule sur une feuille de calcule

bonjour laurent , ici le code avec la ligne de recherche la cellule doublé pour la démo ; remaque le code avec " 1 2 3 4 5 " et le "7 8 22 28 38" ne fonctionne pas ; Sub trouve()

lin = Range("A65536").End(xlUp).Row
col = Range("A1").End(xlToRight).Column

Dim F1 As Worksheet
Set F1 = Worksheets("Feuil1")

' Variable
Dim L As Integer
Dim C As Integer
Dim Vrai As Boolean
Vrai = False

tab1 = F1.Range(F1.Cells(1, 1), F1.Cells(lin, col))

For i = 1 To UBound(tab1, 1)
For J = 1 To UBound(tab1, 2)

If tab1(i, J) = CStr("1 2 3 4 5") Then '
If tab1(i, J) = CStr("7 8 22 28 38") Then '
MsgBox tab1(i, J)
L = i
C = J
Vrai = True
Else
End If

Next J
Next i

If Vrai = True Then
' Selection de la cellule
F1.Cells(L, C).Select
Else
MsgBox "Le code n'existe pas"
End If

ps: je ne peux pas enpecher le décalage qui a mon avis fait planter le code :
If tab1(i, J) = CStr("1 2 3 4 5") Then '
If tab1(i, J) = CStr("7 8 22 28 38") Then '

clerc ;)
 

laurent950

XLDnaute Accro
Re : comment rechercher une cellule sur une feuille de calcule

Bonsoir,

Suite a votre Intérrogation j'ai apporter une amélioration.

1 ) Une boite de dialogue (Saisir un nombre = aux nombre de saisie de numéro a tester)

Ps : J'ai limité a 15 car aprés c'est plus approprié

2) une autre boite de dialogue (Saisir les série de numéro que vous voulez tester)

Une boite de message apparait a l'écrans

et en feuille 2 une récape

Toute y est a vous d'adapter et aussi beaucoup d'idées en Programation car tous est réalisable.

Laurent
 

Pièces jointes

  • CodeTousCorrigéMaintenantFinal.xlsm
    147.6 KB · Affichages: 30
  • CodeTousCorrigéMaintenantFinal.xlsm
    147.6 KB · Affichages: 32
  • CodeTousCorrigéMaintenantFinal.xlsm
    147.6 KB · Affichages: 35
Dernière édition:

laurent950

XLDnaute Accro
Re : comment rechercher une cellule sur une feuille de calcule

Bonsoir Robert et Danred,

Merci pour votre réponse sur le set du VBA j'ai compris, j'ai travailler sur les classes "Modules" J'ai pas encore tous bien saisie c'est complexe en VBA car il y a déja plein de classe qui sont faite et lorsque lon crée c'est propre classe c'est le bazar ensuite. a partir d'une classe qui liste l'ensemble d'un répertoire j'ai refais une partie du code pour lister tous les repertoir et sous repertoir depuis la racine de l'arborescence. c'est pour un entranement car le code était déja fais j'a mis les variable en francais des classes que j'ai crée. les variables tableaux ont l'air interressantes a manipuler dans les classes j'ai aussi travailler sur les evenements qui sont complexe a saisir est a manipuler c'est as intuitif. si vous voulais je peux essayer un code en variable tableau manipuler depuis une classe avec lecture et écriture.
Merci

laurent
 

julien clerc

XLDnaute Junior
Re : comment rechercher une cellule sur une feuille de calcule

re laurent :( je comprendrais jamais pourquoi les combinaison ex: "1 2 3 4 5 " sont trouvé et les combinaison ex: "13 22 28 31 40" sont introuvables et elles existe dans le classeur !
c'est étonnant que excel qui c'est tous faire plate sur cette difficulté
 

Discussions similaires

Réponses
7
Affichages
235
Réponses
5
Affichages
137
Réponses
7
Affichages
373

Statistiques des forums

Discussions
312 239
Messages
2 086 494
Membres
103 234
dernier inscrit
matteo75654548