Activation d'une cellule dans une plage discontinue

  • Initiateur de la discussion Initiateur de la discussion avaya
  • 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 !

A

avaya

Guest
Bonjour à tous,

J'ai un problème certainement futile mais que je n'arrive pas à le résoudre.
J'aimerais appliquer des actions à une cellule d'une plage discontinue.
Par exemple:
Dans la plage A1 à A3 + A5 à A8, je voudrais donner la valeur 2 à A5.


Or si je fais:
Union(Range("A1:A3"), Range("A5:A8")).Cells(4, 1).Value = 2
C'est la cellule A4 qui se voit attribuer la valeur 2...

Si je fais:
Union(Range("A1:A3"), Range("A5:A8")).Range("A1").Offset(3, 0).Value = 2
Ca ne fonctionne pas non plus...


Est-ce que quelqu'un pourrait m'aider?
Je vous remercie d'avance.

Avaya
 
Re : Activation d'une cellule dans une plage discontinue

Bonjour avaya, gosselien

Même si je ne vois pas l'intérêt :

En créant une plage en Union tu crés des Areas.
Donc les cellules repartent de Cells(1,1) à chaque aréa.

Tu peux voir comme ceci:
VB:
Union(Range("A1:A3"), Range("A5:A8")).Areas(2)(1).Value = 2

Cordialement
 
Re : Activation d'une cellule dans une plage discontinue

Bonjour à vous deux,

Gosselin : Justement, ce que j'avais indiqué plus haut était un exemple.
Efgé : Oui à première vue, cela n'a pas d'intérêt comme j'ai pris un exemple ultra simpliste mais ce sera très utile dans ma macro! Je te remercie pour ta solution!

Avaya
 
Dernière modification par un modérateur:
Re : Activation d'une cellule dans une plage discontinue

Rebonjour,

J'ai répondu trop rapidement. Ca fonctionne mais ce n'est pas ce que je recherche puisque ça demande des paramétrages qui ne servent à rien ici (au moins qu'il n'existe pas de meilleure solution).
Je vais essayer de mieux me faire comprendre avec un exemple d'utilisation plus concret en fichier joint.

Dans le fichier, j'aimerais ne pas avoir à faire un truc comme ça:

Sub test()
Dim i As Long
For i = 1 To 3
Range("B1:B3").Cells(i, 1).Value = nombre(i)
Next i
For i = 4 To 5
Range("B5:B6").Cells(i-3, 1).Value = nombre(i)
Next i
End Sub

Je pensais qu'en faisant une union de deux plages, ce serait une sorte de "fusion" et qu'en faisant cetteplage.Cells je ne sélectionnerais QUE des cellules de cette plage (pas les trous à l'intérieur).
Je sais pas si c'est compréhensible... n'hésitez pas à me dire si vous ne comprenez pas où je veux en venir.

Avaya
 

Pièces jointes

Dernière modification par un modérateur:
Re : Activation d'une cellule dans une plage discontinue

Re
Je t'ai expliqué que tu ne pouvais pas boucler 1 to 5 dans une plage créee avec une union.......
Il faut boucler sur les cellules de la plage avec un objet Range:
VB:
Sub test()
Dim Rng As Range, i As Long
    For Each Rng In Union(Range("B1:B3"), Range("B5:B6"))
        i = i + 1
        Rng.Value = nombre(i)
    Next Rng
End Sub

D'autre aprt, ta fonction me semble mal montée. Essai comme ceci:
VB:
Function nombre(X As Long) As Long
Dim Tabl(1 To 5) As String
Tabl(1) = 10
Tabl(2) = 20
Tabl(3) = 30
Tabl(4) = 40
Tabl(5) = 55
nombre = Tabl(X)
End Function

Cordialement
 
- 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
3
Affichages
413
Retour