[EXCEL] Selection de cellule dans une colonne

Résolu/Fermé
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
-
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
-
Bonjour,
J aimerais savoir comment je peux sélectionner automatiquement la cellule en dessous de celle mentionnée.

Plus simple par l exemple
je voudrais quelques chose comme

TextBox1.Value = Range("C6").Value
TextBox2.Value = Range(TextBox1.Value +1).Value


Range(TextBox1.Value +1)
doit indiquer automatiquement la cellule en dessous de C6 (ici C7)

Je sais bien que cela serais plus simple de mettre C7 mais c'est pour automatiser une série de code
j espère avoir été clair

merci d'avance




8 réponses

Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
Bonjour,
Pourquoi pas :
ligne = 6
TextBox1.Value = Cells (ligne,3).Value
TextBox2.Value = Cells (ligne + 1,3).Value
?
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Bonjour,

ou bien (pour rester proche de la question mais la proposition de morgothal est très pertinente) :
TextBox2.Value = Range(TextBox1.Value).offset(1,0).Value

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
4
merci Morgothal et ériiic pour vos réponses rapides

Pour la lisibilité de mon code je préférerais la méthode de ériiic qui se rapproche de se que je voudrais (je reconnais que ce n'est peut être pas la meilleure façon de faire ^^)

J'ai donc appliqué la méthode de ériiic mais j'obtiens une erreur '1004'
"La méthode 'Range' de l'objet '_Global' a échoué"

Auriez vous une solution svp ?
merci
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
Pour reprendre la formule d'Eric, il faudrait faire comme ceci :
TextBox2.Value = Range("C6").offset(1,0).Value 


Je n'ai pas moyens de tester...
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
4
Voici un bout du code pour mon userform avec votre méthode (C6 deviens D3, j'ai fait quelques modifications)

With Sheets("2012")
    If ComboBox2 = "36" Then
    TextBox1.Value = Range("D3").Value
    TextBox2.Value = Range("D3").Offset(1, 0).Value
    TextBox3.Value = Range("D3").Offset(2, 0).Value
    TextBox4.Value = Range("D3").Offset(3, 0).Value
    TextBox5.Value = Range("D3").Offset(4, 0).Value
    TextBox6.Value = Range("D3").Offset(5, 0).Value
    TextBox7.Value = Range("D3").Offset(6, 0).Value
End If


Ce code marche parfaitement

l'inconveniant est que j'ai plusieurs autres valeurs pour mon combobox2 et qu'en appliquant cette méthode je dois beaucoup de valeur
C'est pourquoi je prefererais plutot

    With Sheets("2012")
    If ComboBox2 = "36" Then
    TextBox1.Value = Range("D3").Value
    TextBox2.Value = Range(TextBox1.Value).Offset(1, 0).Value
    TextBox3.Value = Range(TextBox1.Value).Offset(2, 0).Value
    TextBox4.Value = Range(TextBox1.Value).Offset(3, 0).Value
    TextBox5.Value = Range(TextBox1.Value).Offset(4, 0).Value
    TextBox6.Value = Range(TextBox1.Value).Offset(5, 0).Value
    TextBox7.Value = Range(TextBox1.Value).Offset(6, 0).Value
    End If


afin de ne changer qu'une valeur a chaque changement de nombre dans combobox2
Mais ce code ne marche pas, on dirait qu'il n'identifie pas la valeur du textbox1
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
TextBox1.Value = Range("D3").Value
TextBox2.Value = Range(TextBox1.Value).Offset(1, 0).Value

Range(TextBox1.Value) ne peut pas fonctionner, Range() attend une adresse de cellule (Range("A1") par exemple).
Dans Range(TextBox1.Value) tu lui donne la valeur de TextBox1...

C'est pour ça que plus haut j'avais mis
TextBox2.Value = Range("C6").offset(1,0).Value 
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
4
merci pour ta réponse Morghthal

Je comprends
Y aurait il une autre solution a mon problème ? Je me vois mal modifier pour chaque textbox la cellule. C'est pour cela que je cherchais quelques chose d'automatique ou je ne changerais qu'une valeur.
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
Pourquoi pas ainsi ?

    With Sheets("2012")
    If ComboBox2 = "36" Then
    cellule = "D3"
    TextBox1.Value = Range(cellule).Value
    TextBox2.Value = Range(cellule).Offset(1, 0).Value
    TextBox3.Value = Range(cellule).Offset(2, 0).Value
    TextBox4.Value = Range(cellule).Offset(3, 0).Value
    TextBox5.Value = Range(cellule).Offset(4, 0).Value
    TextBox6.Value = Range(cellule).Offset(5, 0).Value
    TextBox7.Value = Range(cellule).Offset(6, 0).Value
    End If
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
4
Oui, cela marche très bien :)

Merci infiniment pour ta patience
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
4
juste une derniere chose svp

    If ComboBox2 = "36" Then
    Dim cellule As String
    cellule = "D3"
    TextBox1.Value = Range(cellule).Value
    TextBox2.Value = Range(cellule).Offset(1, 0).Value
    TextBox3.Value = Range(cellule).Offset(2, 0).Value
    TextBox4.Value = Range(cellule).Offset(3, 0).Value
    TextBox5.Value = Range(cellule).Offset(4, 0).Value
    TextBox6.Value = Range(cellule).Offset(5, 0).Value
    TextBox7.Value = Range(cellule).Offset(6, 0).Value
    End If


y a t il possibilité de mettre les declarations textbox sur une seule ligne afin de gagner de la place ?
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
180
Gagner de la place ? Pourquoi faire ?
Tu peux séparer les grandes lignes en plusieurs avec " _" mais je ne vois pas comment faire l'inverse ...
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
4
ca ira ^^

Merci beaucoup en tout cas :)