Me revoilou, revoilà avec un nouveau souci.
Votre aide me serait encore et toujours précieuse et je vous remercie par avance de votre gentillesse.
Ce qui m'amène :
J'ai deux feuilles dans un classeur :
Une feuille nommée "Données"
Une feuille nommée "Facture"
Dans la Feuille "données", j'ai nommé une plage de cellules : RCPquatre
Dans la feuille "Facture" , la cellule A1 contient un n° de client.
Mon but à atteindre :
J'essaie d'écrire un code qui me permette de chercher la valeur de A1 "Factures" et qui se positionne (Sélect) sur la cellule cible dans "données".
J'ai tenté plusieurs codes sans succès et je n'arrive pas à trouver malgré mes recherches.
En voici quelques exemples (ne riez pas LOL)
Code:
Sub Macro1()
'Application.Goto Reference:=Lookup.Sheets.Facture.Select = "LOOKUP(R1C1],RCPquatre)".Select
'Sheets("Facture").Select.Application.Goto Reference:="=LOOKUP(R1C1],RCPquatre).Select"
'Application.Goto Reference: Sheets("Facture").Select.="=LOOKUP(R1C1,RCPquatre).Select"
End Sub
Je joins un petit classeur test.
Encore un grand merci si votre aide est possible (Merci aussi si pas possible LOL),
Amicalement,
Lionel,
Re : Positionner Sur Cellule Cible Recherche Dans une Plage
Bonjour Lionel.
Avec la fonction Equiv.
Code:
Sub Positionnement()
Critere = Sheets("Facture").[a1]
With Sheets("Données")
On Error Resume Next 'L'erreur se produira si le Critere n'existe pas dans la colonne B
Ligne = WorksheetFunction.Match(Critere, .Columns(2), 0) 'On détermine la ligne correspondant au critère
If Ligne = "" Then MsgBox "Numéro de client non référencé": Exit Sub 'Si aucune ligne, donc non référencé, on quitte la procédure
.Activate 'Sinon nous activons l'onglet Données
.Cells(Ligne, 2).Select 'Et nous plaçons sur la cellule correspondante
End With
End Sub
Sans doute plus simple que d'utiliser la plage RCPquatre
Re : Positionner Sur Cellule Cible Recherche Dans une Plage
hello
avec ce bout de code dans la feuille Facture
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set valeur = [A1]
Sheets("Données").Activate
With ActiveSheet.Range("RCPquatre")
Set c = .Find(valeur)
If Not c Is Nothing Then
c.Select
Else: MsgBox ("valeur inexistante")
Sheets("Facture").Activate
End If
End With
End Sub
à améliorer pour trouver 1 en première ligne (le find exclue toujours la premiere cellule de la zone. stupide, mais c'est comme ca)
et pour faire la différence entre 5 et 15.. c'est à dire. ne pas trouver 5 dans 15..
Re : Positionner Sur Cellule Cible Recherche Dans une Plage
Bonjour, arthour973, thebenoit59, vgendron, le Forum,
Une autre suggestion avec ce code, logé dans le module de l'onglet "Facture" :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
Dim quoi
If c.Address = "$A$1" Then
c.Name = "quoi"
Set quoi = Sheets("Données").Columns(2).Find(Range("quoi"), LookIn:=xlValues, LookAt:=xlWhole)
If Not quoi Is Nothing Then
Sheets("Données").Activate
quoi.Select
Else
MsgBox "Numéro inexistant."
c.Select
End If
End If
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
Dim quoi
If c.Address = "$A$1" Then
c.Name = "quoi"
Set quoi = Sheets("Données").Columns(2).Find(Range("quoi"), LookIn:=xlValues, LookAt:=xlWhole)
If Not quoi Is Nothing Then
Sheets("Données").Activate
quoi.Offset(, 11).Select
Else
MsgBox "Numéro inexistant."
c.Select
End If
End If
End Sub
Re : Positionner Sur Cellule Cible Recherche Dans une Plage
Bonjour DoubleZero,
Re thebenoit59
Merci DoubleZero d'être encore à l'écoute toi aussi.
Ton code fonctionne super mais que la macro s'exécute quand je saisie en A1 de la feuille Facture me pose un problème.
Est-il possible de faire la même chose mais en macro dans module simple a activer selon mon besoin ?
Merci beaucoup encore une fois.
Amicalement,
Lionel,
Re : RESOLU par thebenoit59 et DoubleZero : atteindre cellule cible
Re-bonjour,
Dans un module :
Code:
Option Explicit
Sub Go()
Dim quoi
[a1].Select
Selection.Name = "quoi"
Set quoi = Sheets("Données").Columns(2).Find(Range("quoi"), LookIn:=xlValues, LookAt:=xlWhole)
If Not quoi Is Nothing Then
Sheets("Données").Activate
quoi.Offset(, 11).Select
Else
MsgBox "Numéro inexistant."
[a1].Select
End If
End Sub
Re : RESOLU par thebenoit59 et DoubleZero : atteindre cellule cible
Merci DoubleZero,
ca marche aussi super.
Que dire devant tant de bonnes intentions.
Savez-vous que sans vous tous, comme beaucoup de profanes en vba, je ne pourrai pas travailler correctement ?
Vous n'imaginez peut-être pas l'étendue des services que vous rendez.
Merci !
Amicalement,
Lionjel,
Re : RESOLU par thebenoit59 et DoubleZero : atteindre cellule cible
Re-Bonjour,
Je dois quand même vous dire pourquoi l'exécution automatique de la macro en saisissant dans la cellule A1 de la feuille Facture me pose problème dans mon besoin précis sur ce classeur :
Cette macro va faire partie d'une autre macro (Call)
J'ai besoin de copier à partir de la feuille Facture une information dans la cellule cible de la feuille Données.
Vos macros "Go" de DoubleZero
ou "Positionnement" de thebenoit59
me permettent, après exécution, d'aller chercher l'info en feuille Facture et de la copier dans la cellule cible.