Définir Plage Variable

FaridP

XLDnaute Occasionnel
Bonjour a Tous,

Une fois de plus, je sollicite votre aide pour mettre en place une plage de cellules variable sans jouer de la souris pendant 2 heures.

Est-il possible de définir comme plage de calcul A8:A38 + toutes les 5 colonnes de même taille ?
Ce qui donnerait :
A8:A38 ; E8:38 ; J8:J38 ... Et ainsi de suite sans être obligé de passer la souris sur chaque zone.

Merci de votre Aide toujours aussi précieuse...
A bientôt.
Farid
 

FaridP

XLDnaute Occasionnel
Bonjour Hervé, Bonjour le Forum,

Hervé, merci pour ton aide mais moi et le VBA on est fâchés... ;-)

En fait je voudrais juste renseigner la 1ère plage et qu'il se décale automatiquement toutes les 5 colonnes sans pour autant avoir a les renseigner mais c'est peut-être pas possible.

Merci à Tous
Farid
 

Hervé

XLDnaute Barbatruc
Supporter XLD
re farid

Moi c'est avec les formules que je suis faché :)

enfin, j'aimerai bien les domestiquer, mais dès qu'elles me voient elles se mettent à crier des : #valeur, #nom et autres #NA :eek:


Farid, tu devrais un peu mieux expliquer ton souci en mettant un exemple de ce que tu as, et ce que tu veux obtenir.

salut
 

Robert

XLDnaute Barbatruc
Bonjour Farid, Hervé, bonjour le forum,

Farid, c'est malheureusement une autre macro que je te propose car je ne sais pas faire autrement. Sélectionne une plage puis lance la macro1. La plage est répétée et selectionnée toutes les 5 colonnes. Dis-moi si ça te convient.

Sub Macro1()
Dim Sel As Range 'déclare la variable Sel
Dim x As Integer 'déclare la variable x

Set Sel = Selection 'définit la variable Sel

For x = 1 To 256 'boucle sur 256 éléments
On Error GoTo fin 'evite le bug de dépassement de colonne via la balise 'fin'
'sélectionne la sélection + la sélection décalée de 5 colonnes
Application.Union(Sel, Sel.Offset(0, 5)).Select
Set Sel = Selection 'redéfinit la varaible Sel
Next x

fin:
Sel.Select 'sélectionne le tout
End Sub
 

FaridP

XLDnaute Occasionnel
Re-Bonjour Hervé, le Forum et Bonjour Robert,

Je sais vous allez rire mais je ne sais même pas comment utiliser cette Macro.


En clair et simple, je veux définir une plage qui soit égale à :
- colonne A, colonne F, colonne K et ainsi de suite jusqu'à la fin (4 colonne vide et la 5è prise en compte)

J'espère avoir été plus précis.

Merci et à Bientôt
Farid
 

Gael

XLDnaute Barbatruc
Bonjour Farid, Bonjour Hervé, Bonjour Robert,

J'ai fait un test qui ne répond peut-être pas exactement à ton problème en ce sens que je ne nomme pas toutes les plages mais peut-être cela va-t-il te permettre de mieux nous définir ton besoin.

En fait j'ai nommé la première plage (A1:A38), puis j'ai créé une 2ème plage avec la fonction suivante:

=DECALER(plage;;5*Feuil1!$E$2-1)

En fonction de la valeur en E2, je me positionne automatiquement sur le numéro de la plage souhaitée:

E2=1 ==> E1:E38
E2=2 ==> J1:J38...

cela peut-il t'aider? sinon envoie nous un exemple plus précis.

@+

Gael
 

FaridP

XLDnaute Occasionnel
Re-Bonjour Robert, Hervé et Robert, Bonjour Gael,

Effectivement ta formule me permet d'avancer la seule modification à apporter c'est que je souhaite incorporer toutes les plages et pas une spécialement.

Avec cette formule, je me positionne automatiquement sur une des plage multiple de 5 mais je voudrais pouvoir me positionner simultanément sur toutes les plages multiples de 5.

j'aimerais bcp vous joindre un fichier mais à part mettre en surbrillance toutes les 5 colonnes pour vous dire que je souhaite les définir comme une seule plage nommée, je ne vois pas quoi faire.

En tout cas, merci mille fois de vous pencher comme ça sur mon souci, c'est gentil de votre part.

A bientôt
Farid
 

Gael

XLDnaute Barbatruc
Rebonjour à tous,

Farid, je me pose 2 questions (pour l'instant) concernant ta demande:

* Jusqu'où veux-tu aller dans le nombre de plages? Est-ce jusqu'à la limite de 256 colonnes, ou une dizaine de plages, ou autre?

* Que veux tu faire en fait de ces plages, en additionner les valeurs?, les mettre en couleurs ou autre?

@+

Gael
 

Gael

XLDnaute Barbatruc
Bonjour Farid,

J'ai bien regardé ton problème. Puisque de toutes façons tu dois passer par une fonction macro pour totaliser les cellules par couleur, autant intégrer le calcul des plages dans la fonction.

J'ai récupéré une fonction faisant la somme des cellules d'une couleur donnée, et j'y ai intégré un décalage de 5 en 5 de la plage initiale jusqu'à la colonne 255.

Ca donne le code suivant:

' fonction xl permettant de sommer et compter des cellules par leur couleur de fond
' Avec décalage de la plage de 5 colonnes en 5 colonnes
' -----------------------------------------------------------------------------------
Function SumByColor(InputRange As Range, ColorRange As Range) As Double
Application.Volatile
True
Dim cl As Range, TempSum As Double, ColorIndex As Integer
ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex
TempSum = 0
On Error Resume Next ' ignore cells without values
For i = 0 To 51
If i = 0 Then
    j = 0
Else
    j = i * 5 - 1
End If
For Each cl In InputRange.Offset(0, j).Cells
If cl.Interior.ColorIndex = ColorIndex Then TempSum = TempSum + cl.Value
Next cl
Next i
On Error GoTo 0
Set cl = Nothing
SumByColor = TempSum
End Function

essaye et dis-moi si ça peut résoudre ton problème.

@+

Gael
 

Discussions similaires

Statistiques des forums

Discussions
300 793
Messages
1 987 229
Membres
209 744
dernier inscrit
nldurand