[Catégorie modifiée VB6 --> VBA] Pbm avec macro sur Excel 2003

Signaler
Messages postés
669
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
11 septembre 2020
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

J'ai un petit soucis concernant les macros sur excel 2003 !!

Donc je veux reproduire une formule en 'recherchev' sur la ligne d'en dessous, tout en insérant une ligne par la suite avec cet macro, cependant cela me le fait uniquement une fois car dans VB cela me prend le nom des cellules et noms pas cellule -1,


Je sais pas si j'ai été clair...

Merci pour votre aide,

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

Une fois que ton programme a un Range défini sur une ou des cellules, la propriété Offset te permet de naviguer autour de ce Range :
MsgBox Range("A1").Offset(0, 2).Value
te fournira le contenu de la cellule placée deux colonnes à droite de A1, donc C1 - Voir les paramètres dans l'aide

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
669
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
11 septembre 2020

'
Range("B33:K33").Select
Selection.AutoFill Destination:=Range("B33:K34"), Type:=xlFillDefault
Range("B33:K34").Select
Rows("35:35").Select
Selection.Insert Shift:=xlDown
End Sub


Après avoir fait la macro via excel, voilà ce que VB me sors ... je voulais savoir ce qu'il fallait corriger :


Merciii
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Je t'ai donné un mot clé qui répond à ta question (peu claire).
Si le Range des cellules est ta "Selection" et que tu veux sélectionner une colonne de plus, essaye Selection.Offset...
A toi de lire l'aide à son sujet et à faire des essais.
Messages postés
669
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
11 septembre 2020

Justement je ne veux pas faire ça sur une colonne mais sur une ligne

Ex: ce qui est sur la ligne 3 je veux y retrouve sur ma ligne 4 puis 5 puis 6 etc ... grâce a la macro ;)

Merci pour ton aide précieuse :)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
"ce qui est sur la ligne 3 je veux y retrouve sur ma ligne 4 puis 5 puis 6 etc"
Crois-tu que de telles explications soient compréhensibles ?
Je ne comprends rien à ce que tu veux faire.

Si tu dois sélectionner plusieurs lignes, pourquoi ne pas modifier la macro pour sélectionner la ligne 35 jusqu'à la ligne 38 ?
Au lieu de Rows("35:35").Select, tu mets Rows("35:38").Select

Si tu dois t'adresser à plusieurs ensembles de cellules, il faut passer par un Range :
    Rows("35:35").Select
    Range(Selection, Selection.Offset(2, 0)).Select
Mais comme on ne sait pas ce que tu veux faire ...