OVH Cloud OVH Cloud

récuperer les lignes d'une selection

15 réponses
Avatar
GA
Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les numéros
de lignes sélectionnés et seulement les lignes car j'envoie ensuite dans
une colonne différente dans une autre feuille avec un test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne sélectionnée
pour copier la sélection au même endroit (les tableaux étant identiques
pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga

10 réponses

1 2
Avatar
anonymousA
bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+


Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les numéros
de lignes sélectionnés et seulement les lignes car j'envoie ensuite dans
une colonne différente dans une autre feuille avec un test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne sélectionnée
pour copier la sélection au même endroit (les tableaux étant identiques
pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga



Avatar
GA
Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga

bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les numéros
de lignes sélectionnés et seulement les lignes car j'envoie ensuite dans
une colonne différente dans une autre feuille avec un test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne sélectionnée
pour copier la sélection au même endroit (les tableaux étant identiques
pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga





Avatar
anonymousA
m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement refedit ?

A+



Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga


bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car j'envoie
ensuite dans une colonne différente dans une autre feuille avec un
test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les tableaux
étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga







Avatar
GA
Bonsoir,

Refedit me renvoi bien la plage sélectionnée.
Lorsque je pointe le curseur sur la ligne de ma macro: Range(plage).Copy
cela m'indique bien la sélection:"Feuil1!$B$12:$B$20" que j'effectue
avec la souris. (Je vois bien cette sélection dans le refedit).

Où est mon erreur ?
un problème de positionnement de la ligne de commande ?
je l'ai insérée à la place du commentaire 'Et la je... etc..

Cordialement

Ga


m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement refedit ?

A+




Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga


bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car j'envoie
ensuite dans une colonne différente dans une autre feuille avec un
test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les tableaux
étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga









Avatar
MichDenis
Bonjour AnonymousA,

Si ta réponse était ceci :

Range(plage).rows(1).row devrait te le permettre

Il me semble qu'il te manque les parenthèses .... ça pourrait aider GA

Comme ceci :

Range("plage").rows(1).row devrait te le permettre


Salutations!



"anonymousA" a écrit dans le message de news: 4230a6c4$0$19343$
m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement refedit ?

A+



Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga


bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car j'envoie
ensuite dans une colonne différente dans une autre feuille avec un
test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les tableaux
étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga







Avatar
GA
Merci MichDenis mais avec les parenthèses cela ne fonctionne pas non
plus et là je n'ai plus l'info de la sélection dans la macro avec le
passage du curseur et j'ai: erreur 1004: "la méthode range de
l'objet_global a échoué"

Cordialement

Ga


Bonjour AnonymousA,

Si ta réponse était ceci :

Range(plage).rows(1).row devrait te le permettre

Il me semble qu'il te manque les parenthèses .... ça pourrait aider GA

Comme ceci :

Range("plage").rows(1).row devrait te le permettre


Salutations!



"anonymousA" a écrit dans le message de news: 4230a6c4$0$19343$
m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement refedit ?

A+




Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga



bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+




Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car j'envoie
ensuite dans une colonne différente dans une autre feuille avec un
test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les tableaux
étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga












Avatar
MichDenis
A )
"Plage" doit être une plage nommée, si tu regarde à partir de la barre des menus de la feuille de calcul / insertion /
nom / définir / Plage doit être un nom représentant une plage de cellule...

B ) En VBA, pour faire référence à une plage nommée, le nom doit être mis entre parenthèse (seulement si ce nom
représente une plage de cellule ...) Range("Plage").rows(1).row

C ) Évidemment Range("Plage").rows(1).row ceci n'est pas suffisant... car cette expression renvoie une valeur, il
faut donc qu'il y ait un membre à gauche comme de l'égalité :

Ligne = Range("Plage").rows(1).row

P.S. Mon intervention était seulement pour apporter une précision sur la syntaxe sur cette ligne qui t'avait été
proposée : Range(Plage).rows(1).row .. et non pas sur le fond du problème que tu as soulevé par ta question.


Salutations!




"GA" a écrit dans le message de news:
Merci MichDenis mais avec les parenthèses cela ne fonctionne pas non
plus et là je n'ai plus l'info de la sélection dans la macro avec le
passage du curseur et j'ai: erreur 1004: "la méthode range de
l'objet_global a échoué"

Cordialement

Ga


Bonjour AnonymousA,

Si ta réponse était ceci :

Range(plage).rows(1).row devrait te le permettre

Il me semble qu'il te manque les parenthèses .... ça pourrait aider GA

Comme ceci :

Range("plage").rows(1).row devrait te le permettre


Salutations!



"anonymousA" a écrit dans le message de news: 4230a6c4$0$19343$
m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement refedit ?

A+




Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga



bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+




Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car j'envoie
ensuite dans une colonne différente dans une autre feuille avec un
test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les tableaux
étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga












Avatar
anonymousA
re,

je te donne un exemple pour te mettre sur la voie.

ici tutu et la déclaration de la variable publique sont dans un module
standard et Userform1 comporte un Refedit

Public plagecellrefedit As String
Sub tutu()

'chargement d'un userform et sélection de l'ensemble des
'cellules de current region.

'la variable plagecellrefedit recoit dans le userform l'affectation
'plagecellrefedit = UserForm1.RefEdit1.Value par exemple lors du
'click sur un Commandbutton qui valide les saisies dans le userform


With UserForm1
.RefEdit1.Text = ActiveCell.CurrentRegion.Address
.RefEdit1.SetFocus
.StartUpPosition = 3
.Show
End With
Unload UserForm1 'on décharge le userform (i.e , il n'est plus en 'mémoire)
MsgBox Range(plagecellrefedit).Rows(1).Row (ici on obtient le N° de
'ligne correspondant à la 1ere ligne de la sélection effectuée avec le
'RefEdit et ce quelque soit la feuille sur laquelle ont été
'sélectionnées les cellules)
End Sub

A+

Bonsoir,

Refedit me renvoi bien la plage sélectionnée.
Lorsque je pointe le curseur sur la ligne de ma macro: Range(plage).Copy
cela m'indique bien la sélection:"Feuil1!$B$12:$B$20" que j'effectue
avec la souris. (Je vois bien cette sélection dans le refedit).

Où est mon erreur ?
un problème de positionnement de la ligne de commande ?
je l'ai insérée à la place du commentaire 'Et la je... etc..

Cordialement

Ga



m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement
refedit ?

A+




Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet objet"

Cordialement

Ga


bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car j'envoie
ensuite dans une colonne différente dans une autre feuille avec un
test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les tableaux
étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga











Avatar
GA
Merci pour la démo.
j'ai déclaré ligne as string
et ligne=Range(plage).rows(1).row
je retrouve bien le N° de la 1ere ligne de la sélection mais après je
n'arrive pas à formaliser la syntaxe pour la copie.. Ou Peut-être est-ce
la ligne range(plage).copy qui n'est pas bonne...
comment écrire la ligne de sélection avant ActiveSheet.Paste ? car en
fait je récupére le N° de la ligne mais il faut que je sélectionne cette
ligne pour copier..du genre:"Range(ligne,col).select" ?? Et là je sèche
lamentablement..

Merci de m'aider

Cordialement

Ga

re,

je te donne un exemple pour te mettre sur la voie.

ici tutu et la déclaration de la variable publique sont dans un module
standard et Userform1 comporte un Refedit

Public plagecellrefedit As String
Sub tutu()

'chargement d'un userform et sélection de l'ensemble des
'cellules de current region.

'la variable plagecellrefedit recoit dans le userform l'affectation
'plagecellrefedit = UserForm1.RefEdit1.Value par exemple lors du
'click sur un Commandbutton qui valide les saisies dans le userform


With UserForm1
.RefEdit1.Text = ActiveCell.CurrentRegion.Address
.RefEdit1.SetFocus
.StartUpPosition = 3
.Show
End With
Unload UserForm1 'on décharge le userform (i.e , il n'est plus en 'mémoire)
MsgBox Range(plagecellrefedit).Rows(1).Row (ici on obtient le N° de
'ligne correspondant à la 1ere ligne de la sélection effectuée avec le
'RefEdit et ce quelque soit la feuille sur laquelle ont été
'sélectionnées les cellules)
End Sub

A+


Bonsoir,

Refedit me renvoi bien la plage sélectionnée.
Lorsque je pointe le curseur sur la ligne de ma macro: Range(plage).Copy
cela m'indique bien la sélection:"Feuil1!$B$12:$B$20" que j'effectue
avec la souris. (Je vois bien cette sélection dans le refedit).

Où est mon erreur ?
un problème de positionnement de la ligne de commande ?
je l'ai insérée à la place du commentaire 'Et la je... etc..

Cordialement

Ga



m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement
refedit ?

A+




Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet
objet"

Cordialement

Ga


bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car
j'envoie ensuite dans une colonne différente dans une autre
feuille avec un test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les
tableaux étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga













Avatar
anonymousA
bon,

je ne pense pas qu'il soit trsè judicieux de déclarer ligne comme string .
On suppose que tu as pu récupérer ta plage de ton refedit et que
celle-ci s'appelle "Feuil2!$A1:$A1000" donc ton Refedit.value est ègal à
"Feuil2!$A1:$A1000". tu récupères le N° de la ligne en écrivant
ligne=range(Refedit.value).rows(1).row puis tu écris ta procédure (
attention, c'est telle que je l'ai comprise mais je peux me tromper)

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ligne=range(Refedit.value).rows(1).row
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
with Sheets("Feuil2")
.paste .cells(ligne,col)
end with

Application.CutCopyMode = False

End If

Next
End Sub

A+

Merci pour la démo.
j'ai déclaré ligne as string
et ligne=Range(plage).rows(1).row
je retrouve bien le N° de la 1ere ligne de la sélection mais après je
n'arrive pas à formaliser la syntaxe pour la copie.. Ou Peut-être est-ce
la ligne range(plage).copy qui n'est pas bonne...
comment écrire la ligne de sélection avant ActiveSheet.Paste ? car en
fait je récupére le N° de la ligne mais il faut que je sélectionne cette
ligne pour copier..du genre:"Range(ligne,col).select" ?? Et là je sèche
lamentablement..

Merci de m'aider

Cordialement

Ga


re,

je te donne un exemple pour te mettre sur la voie.

ici tutu et la déclaration de la variable publique sont dans un module
standard et Userform1 comporte un Refedit

Public plagecellrefedit As String
Sub tutu()

'chargement d'un userform et sélection de l'ensemble des
'cellules de current region.

'la variable plagecellrefedit recoit dans le userform l'affectation
'plagecellrefedit = UserForm1.RefEdit1.Value par exemple lors du
'click sur un Commandbutton qui valide les saisies dans le userform


With UserForm1
.RefEdit1.Text = ActiveCell.CurrentRegion.Address
.RefEdit1.SetFocus
.StartUpPosition = 3
.Show
End With
Unload UserForm1 'on décharge le userform (i.e , il n'est plus en
'mémoire)
MsgBox Range(plagecellrefedit).Rows(1).Row (ici on obtient le N° de
'ligne correspondant à la 1ere ligne de la sélection effectuée avec le
'RefEdit et ce quelque soit la feuille sur laquelle ont été
'sélectionnées les cellules)
End Sub

A+


Bonsoir,

Refedit me renvoi bien la plage sélectionnée.
Lorsque je pointe le curseur sur la ligne de ma macro: Range(plage).Copy
cela m'indique bien la sélection:"Feuil1!$B$12:$B$20" que j'effectue
avec la souris. (Je vois bien cette sélection dans le refedit).

Où est mon erreur ?
un problème de positionnement de la ligne de commande ?
je l'ai insérée à la place du commentaire 'Et la je... etc..

Cordialement

Ga



m'excuse mais ca marche très bien, si la plage est définie
correctement.As tu essayé de voir ce que te renvoyais exactement
refedit ?

A+




Merci pour la réponse
mais j'ai une erreur 438: "Propriété ou méthode non gérée par cet
objet"

Cordialement

Ga


bonjour,

Range(plage).rows(1).row devrait te le permettre.

A+



Bonjour à tous,
suite à une sélection dans un refedit, je voudrais récupérer les
numéros de lignes sélectionnés et seulement les lignes car
j'envoie ensuite dans une colonne différente dans une autre
feuille avec un test sur le titre:

Sub Copie_sur_Synthese ()
Dim ColTitre As String, col As Variant
Dim plage As String
plage = UserForm3.RefEdit1.Value
If plage = "" Then
MsgBox "vous n'avez rien sélectionné, recommencez !"
Exit Sub
End If
ColTitre = Cells(1, 2)
Range(plage).Copy
For Each col In Worksheets("Feuil2").Range("B3:D3")
If col = ColTitre Then
Sheets("Feuil2").Select
'Et la je voudrais retrouver le numéro de la première ligne
sélectionnée pour copier la sélection au même endroit (les
tableaux étant identiques pour les lignes).
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next
End Sub

Quelle(s) instruction(s) pour réaliser ceci ?

Merci de votre aide

Cordialement

Ga















1 2