Activer cellule via variable

chombriko

XLDnaute Junior
Bonjour ,

Je possède une variable nommée "var_id_client" dans laquelle j'ai une certaine valeur, ainsi je voudrais activer la cellule dans une feuille nommée "table adresse contact" qui contient la valeur se trouvant dans la variable "var_id_client"
 

WUTED

XLDnaute Occasionnel
Re : Activer cellule via variable

Bonjour chombriko,


Est-ce que cette macro correspond à ton besoin?

VB:
Sub ActiverCellule(var_id_client as String)
    For Each cellule In Sheet("table adresse contact").Cells
        If cellule.Value = var_id_client Then
            cellule.Activate
            Exit Sub
        End If
    Next
End Sub

Bonne journée,
WUTED
 

chombriko

XLDnaute Junior
Re : Activer cellule via variable

Je viens de trouver comment faire!

Merci pour ta proposition :)

Par contre je suis bloqué autre part maintenant , si on pouvait m'aider :rolleyes:

Dans une feuille "table adresse contact" en colonne B , j'ai une variable nommée "var_id_client" qui est égale à différents nombres.

Par exemple si je sélectionne le client 'toto' j'aurai un "var_id_client" qui sera égale a 22 , le problème c'est que je peux avoir plusieurs "var_id_client" correspondant à 'toto' ,c'est à dire plusieurs 22 dans la colonne B.

Ainsi , je n'arrive à récupérer qu'un seul des '22' alors que moi je voudrais tous les récupérer , comment faire?
 

chombriko

XLDnaute Junior
Re : Activer cellule via variable

Oui oui je voulais l'activer autant pour moi désolé!
Mais sa n'active pas la bonne cellule.

Euh non , sa serait le cas où le client aurait plusieurs contact (quand je dis contact c'est à dire personne personne que l'on peut contacter dans l'entreprise).

D'accord je fais sa et je l'envoi .
 

WUTED

XLDnaute Occasionnel
Re : Activer cellule via variable

Re,

Je pense que le mieux dans ton cas est de faire une boucle For qui descend jusqu'en bas de ton tableau, pour chaque cellule dans la colonne B, tu fais un if pour comparer avec l'id que tu souhaites récupérer et si cela correspond tu te ballades dans la ligne de la cellule comparée avec Offset. Je sais pas si c'est clair, une boucle du genre :

VB:
For i = 2 To Range("B65536").End(xlUp).Row
        If Range("B" & i).Value = var_id_client Then
            var_name_client = Range("B" & i).Offset(0, 1).Value
            var_num_tel = Range("B" & i).Offset(0, 2).Value
            var_mail = Range("B" & i).Offset(0, 3).Value
        End If
Next


EDIT : Par contre, des variables vont être écrasées à chaque nouveau contact, faut voir comme tu organises tes données après.
 

chombriko

XLDnaute Junior
Re : Activer cellule via variable

En ayant adapté ton bout de code à mon programme , voici ce que sa donne :

Code:
     For i = 2 To Range("B65536").End(xlUp).Row
        If Range("B" & i).Value = var_id_client Then
            var_nom_contact = Range("B" & i).Offset(0, 1).Value
            var_Num_contact_tel = Range("B" & i).Offset(0, 4).Value
            var_mail_contact = Range("B" & i).Offset(0, 7).Value
        End If
Next

J'agis seulement sur le décalage des colonnes :

Code:
Range("B" & i).Offset(0, 4).Value
 Range("B" & i).Offset(0, 7).Value

Ainsi , j'obtiens l'erreur suivante :

Dépassement de capacité
 

WUTED

XLDnaute Occasionnel
Re : Activer cellule via variable

Re,

L'erreur se produit sur les 2 lignes Offset? Je viens d'essayer la macro sur le fichier test que tu avais mis en pièce jointe et ça a récupéré sans problème les données que je lui demandais..
Pour le i=2 c'était parce qu'en général, y'a l'entête des colonnes sur la 1ère ligne mais mettre i=1 changerait rien au résultat.
 

chombriko

XLDnaute Junior
Re : Activer cellule via variable

Re,

Toi sa marche?
Et bien sa ne récupère rien , je ne comprend pas..

Code:
var_nom_contact = Range("B" & i).Offset(0, 1).Value
            var_Num_contact_tel = Range("B" & i).Offset(0, 4).Value
            var_mail_contact = Range("B" & i).Offset(0, 7).Value

Les trois variables sont vides alors que j'ai bien quelque chose lorsque je pointe le curseur sur 'Range'

Ps: je fais sur mon fichier d'origine et non sur le fichier test mais tout est organisée de la même façon.
 

WUTED

XLDnaute Occasionnel
Re : Activer cellule via variable

Re,

Oui en mettant des msgBox pour qu'il m'affiche la variable à chaque fois qu'on lui assigne une valeur, ça marchait sans problème. Après, comme je te disais, je sais pas comment tu traites tes données parce qu'en faisant seulement :

VB:
     For i = 2 To Range("B65536").End(xlUp).Row
        If Range("B" & i).Value = var_id_client Then
            var_nom_contact = Range("B" & i).Offset(0, 1).Value
            var_Num_contact_tel = Range("B" & i).Offset(0, 4).Value
            var_mail_contact = Range("B" & i).Offset(0, 7).Value
        End If
Next

Les valeurs de tes 3 variables vont être remplacées par les valeurs suivantes et ainsi de suite à chaque tour de boucle.
 

Discussions similaires

Réponses
16
Affichages
672
Réponses
26
Affichages
497

Statistiques des forums

Discussions
312 500
Messages
2 089 007
Membres
104 003
dernier inscrit
adyady__