2010-07-06 2 views
0

VBA - L'utilisateur sélectionne un numéro dans une liste déroulante (1-50) et il est affecté en tant que variable. Je veux maintenant programmer une fonction qui sélectionne les colonnes BA dans une colonne à gauche quelle que soit la valeur sélectionnée par l'utilisateur (I.E. de AV: BA où AV est la colonne variable). J'ai la variable que l'utilisateur choisit comme chaîne (dim var comme chaîne). Votre aide serait appréciée. MerciVBA excel - utilisation d'une variable pour sélectionner une plage de colonnes

Répondre

2

La propriété OFFSET est ce que vous cherchez, bien que pour vous donner une réponse complète, il serait utile que vous ayez posté le code que vous avez écrit jusqu'ici.

Voici quelques informations supplémentaires sur la façon dont OFFSET œuvres:

http://www.excel-vba.com/vba-code-2-6-cells-ranges.htm

Edit: Voici un exemple rapide et sale pour vous aller. Dans ce cas, le sous-programme SelectColumns prend un seul paramètre qui lui indique combien de colonnes à gauche de BA doit être sélectionné (avec BA). Si vous exécutez la sous-routine de test, vous verrez que les colonnes AY: BA sont sélectionnées sur la feuille de calcul active.

Sub SelectColumns(numColsToLeft As Integer) 
    Range(Range("BA1").EntireColumn, Range("BA1").Offset(0, -numColsToLeft).EntireColumn).Select 
End Sub 

Sub Test() 
    Call SelectColumns(2) 
End Sub 
+1

oui mais puis-je mettre dans la variable dans le décalage? Colonnes ("- str: BA"). Sélectionnez str est ma variable – James

+0

Public Sub SampleBox_Change() Dim str As Integer Si (SampleBox.ListIndex> -1) Alors str = SampleBox.List (SampleBox.ListIndex) End If End Sub public Sub Samplesdel (str As Integer) Gamme (Range ("BA1"). EntireColumn, Range ("BA1"). Offset (0, -str) .EntireColumn) .Select Fin Sous Public Sub CommandButton1_Click() Application.Run "Samplesdel" End Sub – James