Question sur macro (cellules)

  • Initiateur de la discussion Initiateur de la discussion Excel74
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Excel74

Guest
Bonjour à tous j'ai crée un macro mais je veux l'ameliorer, voici ma question.

Avant j'avais deux TextBox je rentrai par exemple :

Textbox1 : A1 Textbox2 : A5



Mais c'est pas très fluide quand on veux le faire sur d'autre cellules, d'autre page etc.

Le but serait que avant de lancer la macro avec UserForm ou il y aurai un bouton pour lancer une boucle (deja programmer) :

Recuperer la selection fait pas la souris car pour l'instant ActiveCell me dis que j'ai que 1cellules activer alors je voudrais savoir la liste par exemple :

A5;A6;A7;A8 ou A5:A8

J'espere que vous comprendrais que que j'essaye de vous expliquée merci d'avance.
 
Re : Question sur macro (cellules)

Bonsoir Excel74
Pas certain d' bien comprendre le problème, mais peut-être une structure de ce genre est-elle adaptable ?
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim oCel As Range
   For Each oCel In Selection
      Select Case oCel.Address
         Case "$A$5"
            [COLOR="SeaGreen"]'Faire ce qu'on veut faire avec la cellule A5.[/COLOR]
         Case "$A$6"
            [COLOR="SeaGreen"]'Faire ce qu'on veut faire avec la cellule A6.[/COLOR]
         Case "$A$7"
            [COLOR="SeaGreen"]'Faire ce qu'on veut faire avec la cellule A7.[/COLOR]
         Case "$A$8"
            [COLOR="SeaGreen"]'Faire ce qu'on veut faire avec la cellule A8.[/COLOR]
      End Select
   Next oCel
End Sub[/B][/COLOR]
ROGER2327
#3399


15 Floréal An CCXVIII
2010-W18-2T20:15:47Z
 
Re : Question sur macro (cellules)

Bonsoir Excel, bonsoir le forum,

En effet, il n'y a qu'un seule cellule active même si la sélection est multiple. D'ailleurs c'est celle qui ne passse pas en vidéo inverse (qui ne change pas de couleur) dans la plage sélectionnée (sous 2003 car avec la version 2007 je crois que ça a changé). C'est en principe la première sur laquelle tu as cliqué si la sélection a été faite par un cliquer-glisser...

Sinon, je n'ai pas bien saisi tes explications et donc où tu voulais en venir, mais peut-être un code de se type pourrait convenir :
Code:
Dim cel As Range
 
For Each cel In Selection
'... ton code
Next cel
 
Re : Question sur macro (cellules)

Merci à vous je vais tester tous cela est vous tenir au courant.

Pour etre plus claire j'aimerai recupérer les information quand je selection plusieur cellules à la souris et non que celle qui est active qui est egal à celle ou j'ai cliquer en premier avant de faire gliser ma souris pour en prendre plusieur.

Merci de vos réponse.
 
Re : Question sur macro (cellules)

Re...
Pour récupérer la liste des adresses des cellules d'une sélection quelconque, vous pouvez essayer quelque chose comme :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim oCel As Range, liste$
   For Each oCel In Selection.Cells
      liste = liste & oCel.Address & vbLf
   Next oCel
   MsgBox "Cellule" & IIf(Selection.Count > 1, "s", "") & " sélectionnée" & IIf(Selection.Count > 1, "s", "") & " :" _
      & vbLf & liste
End Sub[/B][/COLOR]
ROGER2327
#3420


16 Floréal An CCXVIII
2010-W18-3T22:02:53Z
 
Re : Question sur macro (cellules)

Bonjour à tous


Histoire d'entrer dans la sélection 😉

Code:
Sub a()
Dim ad$, nbc$, nba$, message$

    With Selection
        ad = _
        "Adresse de la plage sélectionnée: " _
            & .Address
        nbc = _
        "Nombre de cellule(s) sélectionée(s): " _
            & .Count
        nba = _
        "Nombre de blocs contigus de cellules à l'intérieur de la sélection : " _
            & .Areas.Count
    End With
    
message = ad & Chr(13) & nbc & Chr(13) & nba

MsgBox message, vbInformation, "Infos Selection"

End Sub
EDITION: par désœuvrement "vbaiste" (et pour saluer ROGER2327)
Une variation inspirée par le code d'icelui
Code:
Sub b()
Dim i&, adr$
With Selection
    For i = 1 To .Count
    adr = adr & .Item(i).Address(0, 0) & vbLf
    Next
    On Error Resume Next
    .Offset(, 2).Resize(.Count) = _
        Application.Transpose(Split(adr, vbLf))
End With
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
942
L
Réponses
1
Affichages
1 K
Lodan91
L
G
Réponses
3
Affichages
2 K
gexjere
G
D
Réponses
7
Affichages
29 K
dgedge
D
P
  • Question Question
Réponses
2
Affichages
1 K
Pascaline et Excel
P
A
Réponses
14
Affichages
2 K
Alex52
A
M
Réponses
3
Affichages
2 K
M
Retour