Sélection RANGE avec une cellule et une variable

Bonjour le Forum,

En premier merci pour l'aide et le temps accordé par tous pour nous aider !

Je débute en VBA avec aucune formation donc parfois j'ai quelques difficultés. En ce moment je dois copier une valeur et la coller sur une plage de cellule dont la fin est variable. J'ai tester le code suivant mais cela ne fonctionne pas :

Range("B2").Select
ActiveCell.FormulaR1C1 = "HS-HS25"
Dim PosV1 As String
PosV1 = Range(PosI1).Offset(-1, 1)
Range("B2").Copy
ActiveSheet.Range("B2" & ":" & PosV1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Ce code entraine le debug sur la ligne ActiveSheet.Range("B2" & ":" & PosV1).Select

Quelqu'un peut-il me dire comment faire svp ?

D'avance merci !

Vivien

Bonjour,

Essayez avec

PosV1 = Range(PosI1).Offset(-1, 1).Address

A+

Merci beaucoup ! cela fonctionne parfaitement, je vais pouvoir avancer :)

Re,

Ceci dit, VBA est un langage orienté objets, il est inutile d'utiliser les "Select"

Dim PosV1 As String
Range("B2").FormulaR1C1 = "HS-HS25"
PosV1 = Range(PosI1).Offset(-1, 1).Address
Range("B2").Copy Destination:=Range("B2" & ":" & PosV1)
Application.CutCopyMode = False

A+

Ah oui en effet votre version est plus lisible est courte que celle que j'ai fait… en toute transparence je suis RH et non développeur ou codeur.

Pour le moment j'avoue faire comme je peux avec des recherches internet et en utilisant la fonction d'enregistrement pour "découvrir" le VBA.

Ne connaissant pas les langages informatiques, la notion "objets" ne m'est pas connue mais si je comprend le raisonnement, la fonction .Select n'est pas vraiment utile non ? Par curiosité qu'elle est le risque lié à son utilisation ?

Re,

En tant que RH (je comprends mieux),
il est dommage de ne pas se servir des ressources humaines que vous devez avoir

Sinon, il n'y a pas réellement de risque à part :
1) perte de temps inutile
2) ne pas être sur la bonne feuille ou de devoir l'activer pour

Si l'on donne un exemple de code VBA

MaValeur = Sheets("Mes Données RH").Range("A1").Valeur

On sait tout de suite de quelle feuille on parle, objet Sheets
et de quelle cellule on parle, objet Range

Il est donc impossible de se tromper

Ok je vois, mon fichier ne contient que 2 feuilles normalement pour ce travail le risque sera donc limitée.

Et j'avoue pour le moment ne pas avoir assez d'expérience pour prendre des raccourcis, la version initiale du code, même plus longue, me parle plus dans sa logique. J'aimerais beaucoup avoir les ressources humaines pour faire tout cela mais malgré un effectif important dans la société, aucun service IT ou aucune compétence en codage malheureusement !

Après j'avoue prendre plaisir à découvrir ce langage et les possibilités d'Excel… les userform sont plutôt sympa et pratique à utiliser !

Rechercher des sujets similaires à "selection range variable"