Selection de plusieur ligne
sam149
-
sam149 -
sam149 -
Bonjour,
je cherche à sélectionner plusieurs lignes en format (L,C). ces lignes ne sont pas toutes à la suite et dépendent de 5 variables rentrées par l'utilisateur dans 5 textbox
pour l'instant j'ai ça mais ça fonctionne pas bien sur sinon je serais pas là.
Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40)).Select
merci d'avance
je cherche à sélectionner plusieurs lignes en format (L,C). ces lignes ne sont pas toutes à la suite et dépendent de 5 variables rentrées par l'utilisateur dans 5 textbox
pour l'instant j'ai ça mais ça fonctionne pas bien sur sinon je serais pas là.
Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40)).Select
merci d'avance
Configuration: Windows XP Firefox 3.0.4
10 réponses
-
bonsoir
essaies avec la méthode UNION
application.union (Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40)).select -
ça fonctionne un peut....
je m'explique: avec cette méthode il sélectionne les quatre cellules (a,1) (a,40) et (b,1) (b,40).
ce que je cherche à faire c'est sélectionner la plage sur la ligne a de la colonne 1 à 40 et idem pour la b (ça va même jusqu'à e mais si j'ai l'explication pour a et b je crois que je vais pouvoir l'étendre.)
la solution que je vois serai de mettre l'adresse des 40*5 cellules potentielles mais bon ça commence à faire...
doit avoir plus simple.
merci pour ce première élément et d'avance pour les futurs -
Désolé, mais j'ai répondu à ta question...
C'est AVANT d'envoyer ton message qu'il fallait réfléchir et expliquer...
Ciaio-
houa! t'es dure là....
;)
oui j'ai peut etre pas été super clair. en même temps le titre du message est la sélection de plusieurs lignes et non cellules.
en gros comme je ne suis pas super compétent sur vb je me suis inspiré de ça:
Range("A18:L18,A21:L21,A29:L29").Select
mais en format (L,C)
heu...en relisant mon premier message j'ai quand même précisé que je voulais sélectionner des lignes et non des cellules. c'est juste mon code de base qui été pas bon sinon je serais pas là....
merci à+
-
-
up
michel dit que je ne réfléchie pas pourtant j'ai cherché toute la journée et n'ai pas trouvé. J'ai quant même bien défini ce que je voulais.
michel t'a même retirer le cordialement dans ta signature...
pourtant je cherche juste à m'informer pour m'améliorer comme ce que tu as dit dans des précédent message, que ce type de forum t'avais bcp apporter.
voilà enfin si quelqu'un à une idée merci d'avance -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Voici une suggestion :
Option Explicit ' Sub SelectionSpecial() Dim Plage As Range Dim Adresse As String Dim strNF As String strNF = "dossiers en cours" ' Construire par programmation la ' séquence des cellules à sélectionner ' dans la variable [ Adresse ] Adresse = "A1:A40,B1:B40" ' Définir la plage Set Plage = Sheets(strNF).Range(Adresse) ' Effectuer la sélection Plage.Select End Sub '
Lupin -
merci pour la réponse.
je vais encore me faire taper sur les doigts car j'ai pas du expliquer comme il faut. en faite mon a et b sont des variables qui correspondent à ce que l'utilisateur entre dans des textbox.
le code est le suivant:
Private Sub CommandButton1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Worksheets("dossiers en cours").Activate
If UserForm1.TextBox1 = "" Or UserForm1.TextBox1 = 0 Then
MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention"
Exit Sub
If UserForm1.texbox2 = "" Then
MsgBox "il faut enter le n° de la ligne ou 0", vbOKOnly, "attention"
Exit Sub
If UserForm1.texbox3 = "" Then
MsgBox "il faut enter le n° de la ligne ou 0", vbOKOnly, "attention"
Exit Sub
If UserForm1.texbox4 = "" Then
MsgBox "il faut enter le n° de la ligne ou 0", vbOKOnly, "attention"
Exit Sub
If UserForm1.texbox4 = "" Then
MsgBox "il faut enter le n° de la ligne ou 0", vbOKOnly, "attention"
Exit Sub
End If
End If
End If
End If
End If
a = UserForm1.TextBox1
b = UserForm1.TextBox1
c = UserForm1.TextBox1
d = UserForm1.TextBox1
e = UserForm1.TextBox1
Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40), Cells(c, 1), Cells(c, 40), Cells(d, 1), Cells(d, 40)).Select
Selection.Copy
Worksheets("dossiers déposés").Activate
i = 33
While Not Range("p" & i & "").Value = ""
i = i + 1
Wend
Cells(i, 1).Select
ActiveSheet.Paste
Worksheets("dossiers en cours").Activate
Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40), Cells(c, 1), Cells(c, 40), Cells(d, 1), Cells(d, 40)).Select
Selection.Delete Shift:=xlUp
Worksheets("dossiers déposés").Activate
UserForm1.Hide
End Sub
merci d'avance -
avec le bon code ce sera mieux désolé.
ce qui ne va pas c'est dans la sélection quand il y a des valeur de textbox à 0 la ligne de selection devrait les ignorer.Private Sub CommandButton1_Click() Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer Worksheets("dossiers en cours").Activate If UserForm1.TextBox1 = "" Or UserForm1.TextBox1 = 0 Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox2 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox3 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox4 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox5 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub End If End If End If End If End If a = UserForm1.TextBox1 b = UserForm1.TextBox2 c = UserForm1.TextBox3 d = UserForm1.TextBox4 e = UserForm1.TextBox5 Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40), Cells(c, 1), Cells(c, 40), Cells(d, 1), Cells(d, 40)).Select Selection.Copy Worksheets("dossiers déposés").Activate i = 33 While Not Range("p" & i & "").Value = "" i = i + 1 Wend Cells(i, 1).Select ActiveSheet.Paste Worksheets("dossiers en cours").Activate Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40), Cells(c, 1), Cells(c, 40), Cells(d, 1), Cells(d, 40)).Select Selection.Delete Shift:=xlUp Worksheets("dossiers déposés").Activate UserForm1.Hide End Sub -
re :
exemple type :
Private Sub cmd_Execute_Click() Worksheets("dossiers en cours").Activate If UserForm1.TextBox1 = "" Or UserForm1.TextBox1 = 0 Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox2 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox3 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox4 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub If UserForm1.TextBox5 = "" Then MsgBox "il faut enter le n° de la ligne", vbOKOnly, "attention" Exit Sub End If End If End If End If End If a = UserForm1.TextBox1 b = UserForm1.TextBox2 c = UserForm1.TextBox3 d = UserForm1.TextBox4 e = UserForm1.TextBox5 Adresse = "A" & a & ":AN" & a & ",A" & b & ":AN" & b Adresse = Adresse & ",A" & c & ":AN" & c & ",A" & d & ":AN" & d Set Plage = Range(Adresse) Plage.Select 'Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40), Cells(c, 1), Cells(c, 40), Cells(d, 1), Cells(d, 40)).Select Selection.Copy Worksheets("dossiers déposés").Activate i = 33 While Not Range("p" & i & "").Value = "" i = i + 1 Wend Cells(i, 1).Select ActiveSheet.Paste Worksheets("dossiers en cours").Activate Worksheets("dossiers en cours").Range(Cells(a, 1), Cells(a, 40), Cells(b, 1), Cells(b, 40), Cells(c, 1), Cells(c, 40), Cells(d, 1), Cells(d, 40)).Select Selection.Delete Shift:=xlUp Worksheets("dossiers déposés").Activate UserForm1.Hide End Sub '
Lupin -
re:
Utilise l'enregistreur de macro de Excel
-> // Menu / Outils / Macro / Nouvelle macro ...
Effectue la sélection de différente cellule comme tu voudrais le faire dans ta macro.
Va voir le code :
Tu obtiendra quelque chose comme :
Range("A2:AN2,A6:AN6,A10:AN10").Select
d'où la partie [ "A2:AN2,A6:AN6,A10:AN10" ] peut-être reconstitué facilement
comme une chaine de caractère avec le symbole de concaténation [ & ].
ici dans cette exemple, il faut remplacer 2 par a, 6 par b et 10 par c
"A" & a & ":AN" & a & ",A" & b & ":AN" & b & ",A" & c & ":AN" & c
d'où :
' Place un espion sur la variable [ Adresse ] pour en valider la structure.
Adresse = "A" & a & ":AN" & a & ",A" & b & ":AN" & b & ",A" & c & ":AN" & c
Set Plage = Range(Adresse)
Lupin -
re:
Je suis désolé, j'ai poussé ma façon de penser plutôt que de répondre à ta question :-(
Un tutoriel , voilà ta question :-)
Recherche avec ces mots clés :De base : [ Expression Régulières ] Intermédiaire : [ Expression SQL ] Avancée : [ Expression XML ]
Les expressions régulières sont utilisées dans les expression SQL qui elles sont utilisées
dans des expressions XML. Bon c'est un portrait très grossier, mais cela devrait bien guider
tes recherches dans la bonne direction.
Lupin