syntaxe pour coder valeur textbox + 1 dans un range

charette63

XLDnaute Occasionnel
bonjour,

je recherche 2 syntaxes pour inserer la valeur d'un textbox dans un range,

la première: première cellule connue et dernière variable
Range("A4:A" & TextBox1.Text).Select --->exact?

la seconde: dernière cellule connue et la première serait la valeur de la textbox1 + 1

merci

cordialement
Thierry
 

Gorfael

XLDnaute Barbatruc
Re : syntaxe pour coder valeur textbox + 1 dans un range

Salut charette63 et le forum
Il n'y a ni devin, ni télépathe sur ce site !
Range("A4:A" & TextBox1.Text).Select --->exact?
on peut pas dire : utiliser un select est souvent une connerie...
Code:
Range("A4:A" & clng(TextBox1))
mais, en général Excel sait reconnaître un nombre entier.
Code:
Range("A4:A" & clng(TextBox1)+1)
serait peut-être une bonne réponse... à condition de savoir de quoi on parle là !
A+
 

KidNap

XLDnaute Nouveau
Re : syntaxe pour coder valeur textbox + 1 dans un range

J'utilise Cells pour remplacer Range dans ce cas la:

Range ("A2") correspond à Cells (2, 1)

Et donc tu obtiens:
Cells (2, TextBox.value).select
pour controler le numero de la colonne
(tu peux changer pour metre ta ligne en variable)

Pour selectionner une plage avec Cells je fait:
Range(Cells(2,1),Cells(4,5)).Select

Rajoute ta variable ladedans et le tour est jouer :)
 

charette63

XLDnaute Occasionnel
salut à vous Gorfael et KidNad

Désolé, je ne pensais pas (à mes yeux de novice) qu'il eut fallut plus de renseignement pour ma demande.

la macro utilisée sert à une mise en page d'un tableau
certaine cellules fusionnées dans le sens de la colonne sont susceptibles d'être modifiées
Pour ce faire, je demande à l'utilisateur d'entrer un numero de ligne dans une textbox
La colonne A est séparée en deux sur la hauteur du tableau
La premiere et la derniere ligne du tableau sont invariables, mais le nombre de cellules fusionnées seront, elles, variables
La première "demi" colonne (appelée jour dans la troisième partie du code)commencera donc toujours en cellule "A4" et se terminera en "A" + valeur de la textbox5
La seconde "demi" colonne commencera en cellule "A" + valeur de la textbox5 + 1
et se terminera toujours en cellule "A69" (code que je cherche à faire avec les renseignements demandés)



Code:
Sub Macro1()

'double insertion
    Rows(TextBox5.Text & ":" & TextBox5.Text).Select
    Selection.Insert Shift:=xlDown
    Selection.Insert Shift:=xlDown
    
'Cut/past double ligne
    Range("C70:BB71").Select
    Selection.Cut
    Range("B" & TextBox5.Text).Select
    ActiveSheet.Paste
    
'fusion et mise en page cellules "jour"

    Range("A4:A" & TextBox1.Text).Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 90
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = True
    End With
End Sub


j'espere que mes explications sont suffisament claires.

merci
 

charette63

XLDnaute Occasionnel
re tout le monde,

mon bon Gorfael, ton code m'as donné quelques soucis, "utilisation incorrecte de la propriété" (avec textbox1 surligné)
Range("A4:A" & clng(TextBox1))

J'ai donc tenté :Range("A4:A" & clng(TextBox1.text)) de nouveau "utilisation incorrecte de la propriété" (mais avec Range surligné)
je n'ai rien tenté d'autre, mes compétences me l'interdisent

Je me suis donc penché sur les propositions (tout à fait honnête) de KidNap et elles m'apportent entiere satisfaction

merci à vous deux
 

Discussions similaires