Macro excel: Selections multiples
Résolu
Elbosador
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
je suis debutant sur les macros de excel et j'aurais besoin d'aide.
Ayant chercher un peu partout mais n'ayant pas trouver une solution, je voudrais savoir si il est possible de faire une selection de plusieurs cellules, selection avec controle ou maj, et de recuperer les lignes de ces cellules actives.
Je sais que pour une seule cellule active nous pouvons faire:
r = Activecell.row
J'ai aussi essayé avec une boucle mais le problème c'est que je n'ai que la première ligne de selectionné et je ne sais pas comment nous pouvons selectionner les autres cellules selectionné...
Merci d'avoir lu mon problème,
Cordialement
je suis debutant sur les macros de excel et j'aurais besoin d'aide.
Ayant chercher un peu partout mais n'ayant pas trouver une solution, je voudrais savoir si il est possible de faire une selection de plusieurs cellules, selection avec controle ou maj, et de recuperer les lignes de ces cellules actives.
Je sais que pour une seule cellule active nous pouvons faire:
r = Activecell.row
J'ai aussi essayé avec une boucle mais le problème c'est que je n'ai que la première ligne de selectionné et je ne sais pas comment nous pouvons selectionner les autres cellules selectionné...
Merci d'avoir lu mon problème,
Cordialement
A voir également:
- Cette action ne fonctionne pas sur plusieurs sélections
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
5 réponses
Bonjour,
Pour compter le nombre de cellule puis les parcourrir les unes apres les autres J'ai vu cette option :
imax = Selection.Areas.Count
For i = 1 To imax
Selection.Areas(i).Value = imax
Next
a modifier bien sur
a+
jéjé
Pour compter le nombre de cellule puis les parcourrir les unes apres les autres J'ai vu cette option :
imax = Selection.Areas.Count
For i = 1 To imax
Selection.Areas(i).Value = imax
Next
a modifier bien sur
a+
jéjé
Bonjour,
Je te livre "brut de décoffrage" trois codes trouvés sur : https://apprendreexcel.com/
Teste les et si tu as besoin de conseil ou d'adaptation, n'hésite pas à poser d'autres questions.
Je te livre "brut de décoffrage" trois codes trouvés sur : https://apprendreexcel.com/
Teste les et si tu as besoin de conseil ou d'adaptation, n'hésite pas à poser d'autres questions.
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
MsgBox ("La plage que vous avez séléctionnez est : " & Plage.Address)
End Sub
Sub SelectionDiscontinue()
Dim Z1, Z2, MaPlageMultiZone As Range
Worksheets("Feuil1").Select
Range("A1").Select
ActiveCell.End(xlDown).Select
Zone1 = ActiveCell.Address
Selection.Offset(0, 2).Select
Zone2 = ActiveCell.Address
Set Z1 = Range("A1", Zone1)
Set Z2 = Range("C1", Zone2)
Set MaPlageMultiZone = Union(Z1, Z2)
ZoneSelection = MaPlageMultiZone.Select
End Sub
Sub SelectionDeuxColonnesNonContigues()
' Soit les colonnes A (1) et D (4) à sélectionner
NCol1 = 1
NCol2 = 4
Union(Cells(1, NCol1), Cells(1, NCol2)).EntireColumn.Select
End Sub
Sauf erreur, ces macros ne peuvent être utilisé seulement si nous connaissons soit les lignes ou les colonnes selectionnées.
Car mon problème c'est que je suis sur un tableau on selectionne une ou plusieurs lignes une autre feuille s'ouvre et recopie les informations qui sont sur la ligne selectionnée.
Mais ceci est deja fait, si vous voulez que je vous link ma macro demandé le moi.
Mais le problème c'est que je n'arrive pas à avoir les autres numeros de lignes selectionnées.
j'ai deja reflechit a çà avec cette acro:
Dim a_imp()
For e = 1 to ActiveWindows.rangeSelection.count
For h=1 To 300
If activecell.row = h then
l = l + 1
ReDim Preserve a_imp(l)
a_imp(l) = h
'Récupèration du numero de ligne
Goto 5
End If
Next
5
'ActiveCell suivant
Next
Si vous avez d'autre idées je suis preneur
Merci pour votre reponse
Car mon problème c'est que je suis sur un tableau on selectionne une ou plusieurs lignes une autre feuille s'ouvre et recopie les informations qui sont sur la ligne selectionnée.
Mais ceci est deja fait, si vous voulez que je vous link ma macro demandé le moi.
Mais le problème c'est que je n'arrive pas à avoir les autres numeros de lignes selectionnées.
j'ai deja reflechit a çà avec cette acro:
Dim a_imp()
For e = 1 to ActiveWindows.rangeSelection.count
For h=1 To 300
If activecell.row = h then
l = l + 1
ReDim Preserve a_imp(l)
a_imp(l) = h
'Récupèration du numero de ligne
Goto 5
End If
Next
5
'ActiveCell suivant
Next
Si vous avez d'autre idées je suis preneur
Merci pour votre reponse
Sinon en adaptant un peu (beaucoup) le premier code que j'ai donné on obtient :
Suffit de sélectionner x cellules avec la souris et la touche Ctrl (continue ou discontinue la plage, peu importe...) quand la macro le demande...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Sub SelectionPlageAvecSouris()
Dim MonTableau() As String
Dim Plage As Range
Dim j As Integer
Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
MonTableau = Split(Plage.Address, ",")
For j = 0 To UBound(MonTableau)
MsgBox MonTableau(j)
Next j
End Sub
Suffit de sélectionner x cellules avec la souris et la touche Ctrl (continue ou discontinue la plage, peu importe...) quand la macro le demande...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
je sais que le sujet est vieux mais vous pourrez surement m'aider.
J'ai mis sur place une macro permettant de sélectionné la case de la colonne et de copier la cellule en B en étant sur n'importe quelle cellule de la ligne qui m'intéresse.
Cependant j'aimerai pouvoir sélectionné des cases de plusieurs lignes et lancer ma macro qui irait ma sélectionner plusieurs case dans ma colonne B. Je joins un bout du code que j'ai créé.
Dim select1 As Object
Dim str As String
Dim dir As String
Workbooks.Open Filename:="X:\Departements\Sys-Plat DSMP\Apprenti\Lucas\Projet Processus\RLT_LOG\BL.xls"
Workbooks("Fichier RLT_Log.xls").Activate
Range("B" & ActiveCell.Row).Select 'Sélectionner la cellule à lintersection de la colonne B et de la ligne active
selection.Copy
Set select1 = selection
Workbooks("BL.xls").Activate
Range("A11:D12").Select
ActiveSheet.Paste
Workbooks("Fichier RLT_Log.xls").Activate
select1.Offset(0, -1).Select
....
Merci de votre réponse, enfin j'espère que vous me répondrez, vous ou quelqu'un...
je sais que le sujet est vieux mais vous pourrez surement m'aider.
J'ai mis sur place une macro permettant de sélectionné la case de la colonne et de copier la cellule en B en étant sur n'importe quelle cellule de la ligne qui m'intéresse.
Cependant j'aimerai pouvoir sélectionné des cases de plusieurs lignes et lancer ma macro qui irait ma sélectionner plusieurs case dans ma colonne B. Je joins un bout du code que j'ai créé.
Dim select1 As Object
Dim str As String
Dim dir As String
Workbooks.Open Filename:="X:\Departements\Sys-Plat DSMP\Apprenti\Lucas\Projet Processus\RLT_LOG\BL.xls"
Workbooks("Fichier RLT_Log.xls").Activate
Range("B" & ActiveCell.Row).Select 'Sélectionner la cellule à lintersection de la colonne B et de la ligne active
selection.Copy
Set select1 = selection
Workbooks("BL.xls").Activate
Range("A11:D12").Select
ActiveSheet.Paste
Workbooks("Fichier RLT_Log.xls").Activate
select1.Offset(0, -1).Select
....
Merci de votre réponse, enfin j'espère que vous me répondrez, vous ou quelqu'un...
Salut,
Regarde cette macro de : https://apprendreexcel.com/ que j'ai légèrement modifié pour toi.
Split(MonTableau(j), "$")(2) te donne ici le numéro des lignes que tu as sélectionné...
Regarde cette macro de : https://apprendreexcel.com/ que j'ai légèrement modifié pour toi.
Split(MonTableau(j), "$")(2) te donne ici le numéro des lignes que tu as sélectionné...
Sub SelectionPlageAvecSourisetrestitution()
Dim MonTableau() As String
Dim Plage As Range
Dim j As Integer
Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
MonTableau = Split(Plage.Address, ",")
For j = 0 To UBound(MonTableau)
MsgBox Split(MonTableau(j), "$")(2)
Next j
End Sub