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
 

laurent950

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

Bonsoir

Tous simplement avec une boucle est une condition sur la cellule qui contien l'information rechercher

Ps : Julien Clair c'est pas très clair vos explication ;-)) sourire

Laurent
 

Robert

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

Bonjour Julien, bonjour le forum,

Pas très Clerc Julien (hé oui, il fallait que je la fasse même si elle est naze, sinon après j'ai des ulcères) tes explications... Avec le peu que tu donnes le code ci-dessous à adapter à ton cas :
Code:
Sub Macro1()
Dim r As Range

Set r = Sheets("Ton_Onglet").Cells.Find(Range("Ta_cellule").Value, , xlValues, xlWhole)
If Not r Is Nothing Then
     Sheets("Ton_onglet").Select
     r.Select
End If
Tu remplaceras Ton_onglet par le nom de l'onglet où tu souhaites effectuer la recherche
Si la valeur cherchée se trouve dans une cellule, tu remplaceras Ta_cellule par l'adresse de la cellule
Si la valeur cherchée n'est pas variable mais une valeur en dur, tu remplaceras Range("Ta_cellule").Value par la valeur elle-même...

[Édition]
Bonjour Laurent on s'est croisé. Arfff... Je vois qu'il n'y a pas que moi qui aime les jeux de mots nazes !
 

laurent950

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

Bonsoir Robert,

Je suis entrains d'apprendre les modules de classe en ce moment et j'aimerais comprendre à quoi sert Set en fait ?

Car je sais que dans votre exemple r est un objet de la classe Range. Mais en fait pourquoi se servir de Set (J'hésite c'est un accesseur ?) pour passer l'information dans r :

Donc r c'est comme une variable de type scalaire ou c'est une variable de type référence ?

Je suis perdu en fait, si vous pouvais m'aider à m'y retrouver. Je vous en remercie par avance car j'ai beaucoup appris grâce à vous tous est suis toujours prêt a partager mes connaissance quand je peux, mais vous êtes nettement plus fort que moi est je n'avais pas pensé à cette astuce de recherche.


Laurent
 
Dernière édition:

julien clerc

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

salut a tous quelle humours ! :D
alors mes cobinaisons découle du code suivant :
Sub combinaisons()
lin = 1
col = 1
For m = 1 To 20
For n = m + 1 To 20
For o = n + 1 To 20
For p = o + 1 To 20
For q = p + 1 To 20
Cells(lin, col) = m & " " & n & " " & " " & o & " " & p & " " & q
lin = lin + 1
If lin > 100 Then
col = col + 1
lin = 1
End If
Next q
Next p
Next o
Next n
Next m
End Sub
et je souhaite une vba pour trouver rapidement la cellule contenant les numéros 1 4 10 12 18 par exemple

voila j’espère avoir était clerc !;)
 

laurent950

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

Bonsoir Julien,

comment ne pas faire de l'humour avec votre speudo hi hi hi... Clerc enfin... Pas Clair c'est mieux je pense Ha Ha Ha...

Bon en faite la recherche !!

1 4 10 12 en faite ily a deux espace entre 4 et 10 est pas un espace !!
1 4 10 12 Voila la c'est mieux en faite !

Bonus pour Set a quoi cela sert j'ai trouver l'instrution avec détail pour vous les autres et le forum.

Trouver sur ce site :

lien : Office: VBA Instruction Set pq est-ce nécessaire[Réglé] - Consulter le sujet • Forum du laboratoire des technologies Microsoft

Réponse simple: Set permet d'indiquer que l'on a un objet; sans le Set, il s'agit d'une simple variable.

Pourquoi une telle différence? parce qu'un objet n'est pas un simple emplacement mémoire dans lequel on vient stocker une petite valeur. Donc le mécanisme d'affectation étant beaucoup plus complexe, il a été décidé de différencier les syntaxes.

Toutefois, il est à noter que dans des langages plus récents (VB.Net par exemple), il n'est plus nécessaire de faire la distinction et donc le Set disparaît.

Pour le code Julien Voila :

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

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 4  10 12 18") Then '
            MsgBox tab1(i, J)
            L = i
            C = J
        End If
    
    Next J
Next i

' Selection de la cellule
F1.Cells(L, C).Select

End Sub
[code=vb]

Bon C'était une pointe d'humour, pour Info se forum est Formidable est ceux qui répondent sont vraiment des Pros donc il faut essayer d'être précis et je tiens a dire merci a tous ceux qui mon aider depuis mes début. en espèrent aussi vous avoir aider au plaisir de vous lire tous vous répondre, apprendre, partager pour être toujours plus fort et performant.

Ps : Robert j'ai trouver la réponse en se moment je trvail beaucoup est je suis sur des choses difficile est complexe pour ce qui est de mon niveau, merci a vous Robert car vous m'avez aussi beaucoup aider sur se forum.

Laurent
 

Pièces jointes

  • TrouveVariableTableauJulien.xlsm
    140.4 KB · Affichages: 58
Dernière édition:

laurent950

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

Bonsoir,

Fichier join en poste #6 clique sur le carré Rouge.
la message qui va donner le numéro pui redirection sur la cellule dite ou se trouve le code.

En Faite ca COUR... et je pense assez vite pour participé au Jeux Olympique hi hi hi Voila... Au plaisir Julien de vous lire est vous répondre

laurent
 
Dernière édition:

Robert

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

Bonsoir le fil, bonsoir le forum,

@ Julien : toujours aussi peu clair pour moi. Tant que tu refuseras de mettre un fichier exemple on aura du mal à t'aider...

@ laurent : voilà ce que dit l'aide VBA à propos de Set :
Attribue une référence d'objet à une variable ou à une propriété.
Syntaxe
Set objectvar = {[New] objectexpression | Nothing}
NewFacultatif. Le mot clé New est généralement utilisé dans les déclarations pour permettre les créations implicites d'objet. Utilisé avec Set, le mot clé New crée une nouvelle instance de la classe. Si l'argument objectvar contenait une référence à un objet, cette dernière est abandonnée lors de l'association de la nouvelle. Le mot clé New ne peut pas être utilisé pour créer de nouvelles instances de types de données intrinsèques ou des objets dépendants.
objectexpressionExpression représentant le nom d'un objet, d'une autre variable déclarée du même type objet ou d'une fonction ou méthode renvoyant un objet du même type.
NothingFacultatif. Met fin à l'association entre objectvar et un objet donné. L'attribution de la valeur Nothing à l'argument objectvar libère l'ensemble des ressources système et mémoire associées à l'objet anciennement référencé lorsqu'aucune autre variable ne le désigne.

Moi, non plus au début je ne comprenais pas pourquoi certaines variables étaient définies à l'aide de Set et d'autres pas... J'ai cru comprendre que quand on faisait référence à un objet (onglet, plage, collection, etc.) il fallait utiliser le Set. Maintenant je l'utilise intuitivement car sinon je sais que ça va planter mais, à vrai dire, j'ai pas encore tout à fait saisi l'histoire...
 

laurent950

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

Robert en faite se soir je ne peux pas te répondre ou partager avec toi non plus car en faite je ne sais pas non plus, je vais faire les recherche qu'il faut pour arriver a faire cette distinction. pour moi il y a des classe dans excel, Range, worksheet, etc. et il y a des Variables Propriétés, des méthodes j'apprend tous cela avec les module de classe, j'ai trouver dans des exemples de module de classe avec des objets et aussi set (mais je ne suis pas encore assez fort) pour en donner une explication donc une fois que j'ai trouver cette explication rationnel je vous en fait part avec des explication est exemple, je suis en plein dedans en se moment.
Merci Robert pour cette information et je vous en fait part par email des que j'ai compris cela.

laurent
 

julien clerc

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

re laurent , ton code a bien fonctionné pendant 10min et en suite j'ai le message suivant : erreur 1004; erreur défini par l'application ou par l'objet. voici ta vba modifier pour ma feuille de calcule ,


Sub trouve()

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

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

' Variable
Dim L As Integer
Dim C As Integer

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("10 13 15 22 38") Then '
MsgBox tab1(i, J)
L = i
C = J
End If

Next J
Next i

' Selection de la cellule
F1.Cells(L, C).Select

End Sub

ps: en appuyant sur débogage j'ai: F1.Cells(L, C).Select en jaune

voila merci de ton aide
 

Robert

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

Bonjour le fil, bonjour le forum,

Si tu lances le code à partir d'une autre onglet que F1 (= Sheets("Feuil2")), il te faudra d'abord sélectionner l'onglet, F1.Select puis la cellule, F1.Cells(L, C).Select.
Les dernières lignes de code deviennent :
Code:
' Selection de la cellule
F1.Select
F1.Cells(L, C).Select
 

julien clerc

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

bonjour à tous voila j'ai transféré ma page de calcule de la feuille 2 ver la feuille 1 pour éviter toute confusion
ce code me semble difficile , j'ai essayé celui de robert poste #3 sans succès :confused:

merci de votre aide
 

Pièces jointes

  • classeur modif robert.xlsm
    214.7 KB · Affichages: 50
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,

C'est normal que ça ne marche pas, la valeur que tu cherches n'existe pas ! En pièce jointe ton fichier modifié. Au lieu d'une valeur en dur, je te propose une boîte d'entrée. Copie la valeur de n'importe quelle cellule, lance la macro, colle la valeur copiée et valide ! La cellule qui contient la valeur est sélectionnée. Si tu tapes un valeur qui n'existe pas un message te le signale...
Le code :
Code:
Sub trouve()
Dim v As String
Dim dl As Integer
Dim dc As Integer
Dim pl As Range
Dim r As Range
v = Application.InputBox("Valeur", "Indiquer la valeur à recherche", Type:=2)
If Not v = False Then
    With Worksheets("Feuil1")
        dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row
        dc = .Cells(1, 1).End(xlToRight).Column
        Set pl = .Range(.Cells(1, 1), .Cells(dl, dc))
        Set r = pl.Find(v, , xlValues, xlWhole)
        If Not r Is Nothing Then
             .Select
             r.Select
        Else
            MsgBox "Valeur : " & v & " non trouvé !"
        End If
    End With
End If
End Sub
Si tu veux rechercher une valeur en dur ("3 12 14 34 35" par exemple) , remplace la boite d'entrée v par la valeur en dur comme dans le code ci-dessous:
Code:
v = "3 12 14 34 35"

[Édition]
Oooops, j'avais oublié la pièce jointe...
Le fichier :
 

Pièces jointes

  • la_chèvre_v01.xls
    114 KB · Affichages: 47
Dernière édition:

Discussions similaires

Réponses
7
Affichages
330

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390