[EXCEL] Selection de cellule dans une colonne

Résolu/Fermé
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 12 sept. 2012 à 13:26
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 12 sept. 2012 à 15:48
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




A voir également:

8 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
12 sept. 2012 à 13:32
Bonjour,
Pourquoi pas :
ligne = 6
TextBox1.Value = Cells (ligne,3).Value
TextBox2.Value = Cells (ligne + 1,3).Value
?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
Modifié par eriiic le 12/09/2012 à 13:43
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.
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
12 sept. 2012 à 14:05
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
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
12 sept. 2012 à 14:21
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...
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
12 sept. 2012 à 14:39
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
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
12 sept. 2012 à 15:09
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 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
12 sept. 2012 à 15:21
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.
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
12 sept. 2012 à 15:29
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
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
12 sept. 2012 à 15:38
Oui, cela marche très bien :)

Merci infiniment pour ta patience
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
12 sept. 2012 à 15:42
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 ?
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
12 sept. 2012 à 15:46
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 ...
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
12 sept. 2012 à 15:48
ca ira ^^

Merci beaucoup en tout cas :)
0