OVH Cloud OVH Cloud

Traitement selon la colonne selectionnée dans un textbox

4 réponses
Avatar
Esox38
Bonsoir,

Je suis sur une macro depuis plusieurs heures et je bloque, pouvez vous me
donner un petit coup de pouce, merci

voila le code qui est dans un UserForm avec un bouton et un textbox :
Dim colonne
Private Sub CommandButton24_Click()
On Error GoTo line1001
colonne = TextBox172.Value '& ":" C'EST ICI QUE CA COMMENCE A PLANTER
For Ligne = colonne & [65536].End(xlUp).Row To 1 Step -1
If Ligne = 1 Then GoTo line1
If Range("colonne" & Ligne).Value <> Range("colonne" & Ligne -
1).Value Then
InsereLigne = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
NombredeValeurs = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
If InsereLigne > 1 Then
Rows(Ligne).Select
For i = 1 To InsereLigne - 1
Selection.Insert Shift:=xlDown
Next i
End If
End If
Next
line1:
..........

Je n'arrive pas à faire coller la valeur que je saisie dans le Textbox172
(par exemple B) la valeur qui ressort est "B" mais il plante en affichant un
message objet non défini. J'ai essayer de définir ma variable en Range, mais
rien à faire.

Si vous avez une idée, merci
Bonsoir et bon WE
--
Esox38

4 réponses

Avatar
FxM
Bonsoir,

Non testé :
J'ai un doute sur colonne = TextBox172.Value pour une lettre.
Teste voir avec : colonne = TextBox172.text

Ensuite, si tu mets "colonne" entre guillemets, tu utilises le texte
"colonne" et pas le contenu de la variable nommée colonne.
Il te faut remplacer "colonne" par colonne (pas de guillemets).

Si ça ne suffit pas, repasse nous voir. :o)

@+
FxM


Bonsoir,

Je suis sur une macro depuis plusieurs heures et je bloque, pouvez vous me
donner un petit coup de pouce, merci

voila le code qui est dans un UserForm avec un bouton et un textbox :
Dim colonne
Private Sub CommandButton24_Click()
On Error GoTo line1001
colonne = TextBox172.Value '& ":" C'EST ICI QUE CA COMMENCE A PLANTER
For Ligne = colonne & [65536].End(xlUp).Row To 1 Step -1
If Ligne = 1 Then GoTo line1
If Range("colonne" & Ligne).Value <> Range("colonne" & Ligne -
1).Value Then
InsereLigne = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
NombredeValeurs = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
If InsereLigne > 1 Then
Rows(Ligne).Select
For i = 1 To InsereLigne - 1
Selection.Insert Shift:=xlDown
Next i
End If
End If
Next
line1:
...........

Je n'arrive pas à faire coller la valeur que je saisie dans le Textbox172
(par exemple B) la valeur qui ressort est "B" mais il plante en affichant un
message objet non défini. J'ai essayer de définir ma variable en Range, mais
rien à faire.

Si vous avez une idée, merci
Bonsoir et bon WE


Avatar
Esox38
Bonsoir,

Merci pour les 2 corrections mais cela plante au niveau de la ligne :
For Ligne = colonne & [65536].End(xlUp).Row To 1 Step -1

La valeur de la variable ressort entre " " et je pense que la désignation de
la colonne ne doit pas être entre " " .

A+
Esox38



Bonsoir,

Non testé :
J'ai un doute sur colonne = TextBox172.Value pour une lettre.
Teste voir avec : colonne = TextBox172.text

Ensuite, si tu mets "colonne" entre guillemets, tu utilises le texte
"colonne" et pas le contenu de la variable nommée colonne.
Il te faut remplacer "colonne" par colonne (pas de guillemets).

Si ça ne suffit pas, repasse nous voir. :o)

@+
FxM


Bonsoir,

Je suis sur une macro depuis plusieurs heures et je bloque, pouvez vous me
donner un petit coup de pouce, merci

voila le code qui est dans un UserForm avec un bouton et un textbox :
Dim colonne
Private Sub CommandButton24_Click()
On Error GoTo line1001
colonne = TextBox172.Value '& ":" C'EST ICI QUE CA COMMENCE A PLANTER
For Ligne = colonne & [65536].End(xlUp).Row To 1 Step -1
If Ligne = 1 Then GoTo line1
If Range("colonne" & Ligne).Value <> Range("colonne" & Ligne -
1).Value Then
InsereLigne = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
NombredeValeurs = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
If InsereLigne > 1 Then
Rows(Ligne).Select
For i = 1 To InsereLigne - 1
Selection.Insert Shift:=xlDown
Next i
End If
End If
Next
line1:
...........

Je n'arrive pas à faire coller la valeur que je saisie dans le Textbox172
(par exemple B) la valeur qui ressort est "B" mais il plante en affichant un
message objet non défini. J'ai essayer de définir ma variable en Range, mais
rien à faire.

Si vous avez une idée, merci
Bonsoir et bon WE





Avatar
AV
Si, comme je crois le comprendre, tu veux utiliser une(des) lettre(s) (saisie(s)
dans un textbox d'un UF) représentant une colonne, pour trouver la dernière
ligne utilisée de cette colonne et l'utiliser dans une boucle for i = .... next
ça pourrait faire ça :

For Ligne = Cells(65536, Range(Me.TextBox1 & "1").Column).End(xlUp).Row To 1
Step -1
........

AV
Avatar
FxM
Bonjour,

Tu peux faire comme te l'as dit AV ou par :
For Ligne = range(colonne & "65536").End(xlUp).Row To 1 Step -1

@+
FxM



Bonsoir,

Merci pour les 2 corrections mais cela plante au niveau de la ligne :
For Ligne = colonne & [65536].End(xlUp).Row To 1 Step -1

La valeur de la variable ressort entre " " et je pense que la désignation de
la colonne ne doit pas être entre " " .

A+
Esox38



Bonsoir,

Non testé :
J'ai un doute sur colonne = TextBox172.Value pour une lettre.
Teste voir avec : colonne = TextBox172.text

Ensuite, si tu mets "colonne" entre guillemets, tu utilises le texte
"colonne" et pas le contenu de la variable nommée colonne.
Il te faut remplacer "colonne" par colonne (pas de guillemets).

Si ça ne suffit pas, repasse nous voir. :o)

@+
FxM


Bonsoir,

Je suis sur une macro depuis plusieurs heures et je bloque, pouvez vous me
donner un petit coup de pouce, merci

voila le code qui est dans un UserForm avec un bouton et un textbox :
Dim colonne
Private Sub CommandButton24_Click()
On Error GoTo line1001
colonne = TextBox172.Value '& ":" C'EST ICI QUE CA COMMENCE A PLANTER
For Ligne = colonne & [65536].End(xlUp).Row To 1 Step -1
If Ligne = 1 Then GoTo line1
If Range("colonne" & Ligne).Value <> Range("colonne" & Ligne -
1).Value Then
InsereLigne = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
NombredeValeurs = Range("colonne" & Ligne).Value - Range("colonne" &
Ligne - 1).Value
If InsereLigne > 1 Then
Rows(Ligne).Select
For i = 1 To InsereLigne - 1
Selection.Insert Shift:=xlDown
Next i
End If
End If
Next
line1:
...........

Je n'arrive pas à faire coller la valeur que je saisie dans le Textbox172
(par exemple B) la valeur qui ressort est "B" mais il plante en affichant un
message objet non défini. J'ai essayer de définir ma variable en Range, mais
rien à faire.

Si vous avez une idée, merci
Bonsoir et bon WE