defilement d'un tableau

M

MARIE74

Guest
B) Bonjour a tous

Météo Haute Savoie
Petite pluie 10° plafond a 1000m 10cm de neige a 3000m

Voila pour les bonnes nouvelles


Les mauvaises nouvelles (pour vous car il va falloir travailler)

Voila je souhaite:

En A1 je tape une valeur qui doit se trouver quelque par dans la colonne B , et il faudrait que tout mon tableau ( environ 1200 lignes)
défile et s'arrete a la valeur demandée en A1 (le defilement ne doit pas forcement etre visible)

Je n'ai rein trouver dans la recherche du forum

Merci beaucoup de votre aide

Attention mois en VBA pas tres fort
 

dg62

XLDnaute Barbatruc
Bonjour Marie74



ici 12°, pluie

et pour répondre à ta question :

Code:
Sub cherchetdefil()
 
cel = Range('A1').Value

With Worksheets(1).Range('a2:a500') ' plage à modifier
    Set c = .Find(cel, LookIn:=xlValues)
     adres = c.Address
        
End With
Range(adres).Activate
End Sub


Cordialement
 
M

MARIE74

Guest
B) Re salut

Merci dg62

Cela fonctionne bien MAIS

Est il possible de rendre automatique le fonctionnement de cette macro simplement en validant la saisie en A1 par la touche 'Entrée'

Peux tu m'aider




Je te rappele que moi pas tres fort en VBA


D'avance merci
 

dg62

XLDnaute Barbatruc
re



Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
cherchetdefil
End If
End Sub


la macro réagit au double clic sur A1


cherchetdefil doit être placé dans un module et le code ci-dessus dans un module de feuille.

Ou alors l'ensemble du code suivant dans un module de feuille.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
cel = Range('A1').Value

With Worksheets(1).Range('a2:a500') ' plage à modifier
    Set c = .Find(cel, LookIn:=xlValues)
     adres = c.Address
        
End With
Range(adres).Activate
End If
End Sub

Cordialement
 
M

MARIE74

Guest
B) Re salut

Merci dg62

Bon j'ai mis cette version dans la feuille, j'ai modifié les plages

Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range('A1')) Is Nothing Then
cel = Range('A1').Value

With Worksheets(1).Range('B5:B2000') ' plage à modifier
Set c = .Find(cel, LookIn:=xlValues)
adres = c.Address

End With
Range(adres).Activate
End If
End Sub


Bin le double clic donne rien

Explique moi ou j'ai fais un betise

Merci d'avance
 

dg62

XLDnaute Barbatruc
re


avec un exemple c'est mieux !


[file name=marie74.zip size=9887]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/marie74.zip[/file]
 

Pièces jointes

  • marie74.zip
    9.7 KB · Affichages: 19
  • marie74.zip
    9.7 KB · Affichages: 18
  • marie74.zip
    9.7 KB · Affichages: 23

dg62

XLDnaute Barbatruc
re


Sans avoir ton classeur sous les yeux, il est difficile de conseiller ou
corriger quelque chose. Tu as sans doute oublié un morceau en route.


Par contre peux-tu recopier tes données dans mon classeur ?

le problème serait résolu.
 
M

MARIE74

Guest
B) Re salut


Merci dj62


J'ai recopié mon classeur complet dans ton classeur et cela fonctionne tres bien.

Enfin mais je ne sais toujours pas pourquoi cela bloque

Une derniere petitie chose, peux tu lorque il y a erreur sur la saisie
en A1 faire apparaitre un message du genre 'dimensions inconnues'

Voila merci d'avance

Tu as tout le temps je reviens lundi

Je te souhaite a toi et a tout le forum un bon W....End

Grosse bise
 

dg62

XLDnaute Barbatruc
Bonjour Marie74



Le code modifié pour tenir compte d'une eventuelle erreur de saisie.


Code:
Sub cherchetdefil()
cel = Range('A1').Value

With Worksheets(1).Range('B5:B2000')
Set c = .Find(cel, LookIn:=xlValues)
    If Not c Is Nothing Then
       adres = c.Address
       Range(adres).Activate
       
    Else
    MsgBox ('Non trouvé')
    End If
        
End With

End Sub

Cordialement

Message édité par: dg62, à: 10/07/2005 18:04