Vba problème de variable dans un range
Résolu
Toshiii
Messages postés
11
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
Bonjour,
Ca fait qques heure s que je penche sur un problème que vous pourrez je pense -j'espère- résoudre.
Voilà, j'ai un tableau de plusieurs colonnes. Je fais une recherche dans la deuxième colonne pour trouver une valeur et je sélectionne la ligne.
Mon but est de ensuite copier cette ligne là et une autre (tjr la même) dans un nouveau classseur.
Mon programme marche si je mets les 2 lignes à copier sous forme de chiffre dans mon range mais ne marche plus quand je mets une variable à la place.
Voici mon code pour être plus claire :
Dim var As Integer
var = 0
'Rechercher la ligne correspondant au nom d'une salle dans une feuille
Workbooks("Equipements cfo.xls").Worksheets("S2_cfo").Activate
For i = 458 To 8 Step -1
Cells(i, 2).Select
If Selection.Text = "S2.H.50" Then
Rows(i).Select
var = i
Exit For
End If
Next i
'Extraction des lignes dans un nouveau classeur
Range("2:2,var:var").Select
Selection.Copy
Workbooks("macro.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
c'est peut-être un problème de mise en page mais je ne trouve pas :s
Merci d'avance :)
Ca fait qques heure s que je penche sur un problème que vous pourrez je pense -j'espère- résoudre.
Voilà, j'ai un tableau de plusieurs colonnes. Je fais une recherche dans la deuxième colonne pour trouver une valeur et je sélectionne la ligne.
Mon but est de ensuite copier cette ligne là et une autre (tjr la même) dans un nouveau classseur.
Mon programme marche si je mets les 2 lignes à copier sous forme de chiffre dans mon range mais ne marche plus quand je mets une variable à la place.
Voici mon code pour être plus claire :
Dim var As Integer
var = 0
'Rechercher la ligne correspondant au nom d'une salle dans une feuille
Workbooks("Equipements cfo.xls").Worksheets("S2_cfo").Activate
For i = 458 To 8 Step -1
Cells(i, 2).Select
If Selection.Text = "S2.H.50" Then
Rows(i).Select
var = i
Exit For
End If
Next i
'Extraction des lignes dans un nouveau classeur
Range("2:2,var:var").Select
Selection.Copy
Workbooks("macro.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
c'est peut-être un problème de mise en page mais je ne trouve pas :s
Merci d'avance :)
A voir également:
- Vba problème de variable dans un range
- Out of range - Forum Ecran
- Input signal out of range - Forum Ecran
- Incompatibilité de type vba ✓ - Forum Programmation
- Problème d'allumage écran LG : "OUT OF RANGE" - Forum Ecran
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
3 réponses
bonjour,
il faudrait passer par un "truc" de ce style:
de plus, plutôt que de donner à var la valeur de i, pour utiliser cette valeur, utilise directement i
par ailleurs, var est le nom d'une fonction; donc ne pas utiliser ce mot.
Bonne suite
Range("2:2,var:var").Selectla zone entre " " n'est pas interprétée et est utilisée telle quelle.
il faudrait passer par un "truc" de ce style:
Plage = "2:2," & var & ":" & var Range(Plage).Select
de plus, plutôt que de donner à var la valeur de i, pour utiliser cette valeur, utilise directement i
Plage = "2:2," & i & ":" & i Range(Plage).Select
par ailleurs, var est le nom d'une fonction; donc ne pas utiliser ce mot.
Bonne suite
bonjour
sans boucle
Michel
sans boucle
With Workbooks("Equipements cfo.xls").Worksheets("S2_cfo") lig = .Columns("B").Find("S2.H.50", .Range("B457"), xlValues).Row plage = "2:2," & lig & ":" & lig .Range(plage).Select End With
Michel