OVH Cloud OVH Cloud

Macro Visual Basic - Excel

4 réponses
Avatar
William
Bonjour,

Je souhaiterai faire un petit programme en Basic, pour exécuter la macro
suivante :

Soit un chiffre saisie dans la cellule A1 >
A
1 10

Je voudrais que ma macro puisse sélectionner la ligne 10 de ma feuille.

Autre exemple, si cette fois, le nombre est 20, la macro devra sélectionner
la ligne 20 de ma feuille...

avez vous une idée ?

Merci d'avance.

William.

4 réponses

Avatar
Patrice Henrio
Le plus simple :
tu crées une macro par nouvelle macro, tu sélectionnes une cellule et tu lui
attribues la valeur de la cellule A1 par "=$A$1"
Tu arrêtes l'enregistrement de la macro.
Tu ouvres Visual basic et tu regardes ce qui est écrit dasn ta macro. Cela
t'apprendra à utiliser l'objet range
Tu recommences avec une nouvelle macro et tu sélectionnes une ligne.
Tu arrêtes la macro et tu regardes le code. Tu apprendras ainsi à gérer
l'objet row.

Ensuite tu fais des essais et tu pourras assez vite répondre toi-même à ta
question.

N'hésites pas à utiliser la touche F1 sous Visual Basic Editor


"William" a écrit dans le message de news:

Bonjour,

Je souhaiterai faire un petit programme en Basic, pour exécuter la macro
suivante :

Soit un chiffre saisie dans la cellule A1 >
A
1 10

Je voudrais que ma macro puisse sélectionner la ligne 10 de ma feuille.

Autre exemple, si cette fois, le nombre est 20, la macro devra
sélectionner
la ligne 20 de ma feuille...

avez vous une idée ?

Merci d'avance.

William.





Avatar
Gloops
Bonjour,

Dans le module associé à la feuille, doit se trouver une procédure liée
à l'événement de modification de la feuille. Worksheet_Modify,
vraisemblablement. Comme je n'ai que la version 95 sous la main, je ne
peux pas vérifier. L'argument de la procédure, si je me rappelle bien,
permet de savoir quelle cellule est modifiée (à la limite c'est
ActiveCell ?).

Placer dans la procédure événementielle de modification de la feuille :
If ActiveCell = ActiveSheet.Range("A1") then
If IsNumeric(Range("A1")) Then
ActiveSheet.Rows(Range("A1")).Select
End If
Endif

à affiner selon l'argument qui dit quelle cellule est modifiée.

Si c'est pour la version 95 je suggère de placer le code ci-dessus dans
un bouton, auquel cas la condition extérieure (qui vérifie la cellule
active) n'est pas utile. Vérifier que A1 est numérique en revanche est
prudent car on aura du mal à sélectionner la ligne 0, ou la ligne
"machintrucbidule". A propos je n'ai pas testé que Range("A1") > 0, il
reste ça à faire.
________________________________________
William a écrit, le 12/10/2004 20:39 :

Bonjour,

Je souhaiterai faire un petit programme en Basic, pour exécuter la macro
suivante :

Soit un chiffre saisie dans la cellule A1 >
A
1 10

Je voudrais que ma macro puisse sélectionner la ligne 10 de ma feuille.

Autre exemple, si cette fois, le nombre est 20, la macro devra sélectionner
la ligne 20 de ma feuille...

avez vous une idée ?

Merci d'avance.

William.





Avatar
Patrice Henrio
J'ai essayé de t'envoyer un exemple de ce qui est faisable en excel 2000.
Mais le message est revenu avec adresse inconnue. Tu peux m'envoyer un mail
à mon adresse pour que je te renvoie l'exemple dont je parle.

"William" a écrit dans le message de news:

Bonjour,

Je souhaiterai faire un petit programme en Basic, pour exécuter la macro
suivante :

Soit un chiffre saisie dans la cellule A1 >
A
1 10

Je voudrais que ma macro puisse sélectionner la ligne 10 de ma feuille.

Autre exemple, si cette fois, le nombre est 20, la macro devra
sélectionner
la ligne 20 de ma feuille...

avez vous une idée ?

Merci d'avance.

William.





Avatar
Hervé
Salut William,
Sur l'évennement "Change" de la feuille. A mettre dans le module de la
feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Test As Long
If Not Intersect(Target, [A1]) Is Nothing Then
On Error Resume Next
If IsError(Test = [A1]) Then Exit Sub
If InStr([A1], ",") Then Exit Sub
Rows([A1]).Select
End If
End Sub

Hervé

"William" a écrit dans le message news:

Bonjour,

Je souhaiterai faire un petit programme en Basic, pour exécuter la macro
suivante :

Soit un chiffre saisie dans la cellule A1 >
A
1 10

Je voudrais que ma macro puisse sélectionner la ligne 10 de ma feuille.

Autre exemple, si cette fois, le nombre est 20, la macro devra


sélectionner
la ligne 20 de ma feuille...

avez vous une idée ?

Merci d'avance.

William.