Macro excel: Selections multiples
Résolu
Elbosador
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
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