Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC récupérer les valeurs d’une plage colonne continue à partir d’une plage discontinue.

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

sergio_bzh

XLDnaute Junior
Bonjour,

je ne sais pas si mon titre est très clair mais comme souvent un schéma vaudra mieux que les mots.

J’ai donc une liste de valeurs en B2:B13 et je voudrais récupérer ces valeurs dans une autre plage de cellules qui est discontinue mais régulière :
en D2 je voudrais récupérer la valeur de B1
en E5 , celle de B3
en D7, celle de B4
en E10, celle de B5
en D12, celle de B6
etc etc

Comme vous le voyez, ce que j’appelle la plage de cellule discontinue a une structure régulière.

Je désirerais également que la formule qui sera dans ces cellules D2 E5 D7 E10 D12 etc soit copiable pour propager la formule par copier-coller. i.e. par exemple copier E5 et coller en D7 ou encore que je puisse copier par exemple D7:E11 et coller en D12:E16.

Merci d'avance et bonne fin de journée.
Serge

 

Pièces jointes

  • Screenshot 2025-05-21 at 09.39.30.png
    172.7 KB · Affichages: 18
Bonjour,

C'est pô clair ton histoire...
Dans le titre tu demandes un truc, mais dans le texte de ta question tu demandes l'inverse et l'image montre le contraire du texte. 🤪

je ne sais pas si mon titre est très clair mais comme souvent un schéma vaudra mieux que les mots.
Exact. Et un classeur vaut mieux qu'une image (on n'est pas sur un forum PhotoShop. LOL).


Formules à tester :
- pour la colonne D : =SI(MOD(LIGNE(D2)-LIGNE($D$2);5)=0;DECALER($B$2;2*ENT((LIGNE(D2)-LIGNE($D$2))/5);0);"")
- pour la colonne E : =SI(MOD(LIGNE(D2)-LIGNE($D$2);5)=3;DECALER($B$2;2*ENT((LIGNE(D2)-LIGNE($D$2))/5)+1;0);"")



ps : si c'est l'inverse qu'il te faut, comme dans ton titre et sur ton schéma, merci de le dire pour que je vois si je peux trouver une formule adaptée.
 
Dernière édition:
Désolé pour l'incompréhension , je me suis relu mais ça n'a pas suffi. Quelques fois on part dans des réflexions et on ne prend pas le recul nécessaire.

La colonne B contient des valeurs que je récupère par ailleurs.
Ensuite dans les cellules des colonnes D et E , je voudrais une formule, que je puisse copier-coller, pour aller chercher les valeurs de la colonne B et dans l'ordre indiqué par mon schéma.
en D2 , je veux récupérer la valeur de B2
en E5 , la valeur de B3
en D7 , la valeur de B4
en E9 , la valeur de B5
etc

En tous cas, merci TooFatBoy , la formule pour la colonne D fonctionne nickel, je vais faire les ajustements pour la colonne E. Je pensais que ça allait être très complexe mais je ne connaissais pas non plus la fonction DECALER. J'avais essayé de réfléchir avec des fonctions comme Indirect ou FormuleText mais je ne voyais même pas comment démarrer.
Sur ce site, avec tous les gourous Excel, on a toujours une solution 🙂)) Merci !!
 
Bonjour,
à partir des 2 formules du "gourou" TFB
VB:
=SI(COLONNE()=4;SI(MOD(LIGNE(D2)-LIGNE($D$2);5)=0;DECALER($B$2;2*ENT((LIGNE(D2)-LIGNE($D$2))/5);0);"");SI(MOD(LIGNE(D2)-LIGNE($D$2);5)=3;DECALER($B$2;2*ENT((LIGNE(D2)-LIGNE($D$2))/5)+1;0);""))
 
Bonjour à tous 😉,

Juste pour le fun, une procédure générique VBA qui, à partir de données d'une plage en colonne, distribue ces données selon un motif désiré. La déclaration de la procédure : Sub Distribuer(Plage As Range, ParamArray Motif())

Un exemple d'utilisation : Distribuer PlageValeurs, [d2], [e5], [d7] où :
  • PlageValeurs est la plage (en colonne) des valeurs
  • [d2], [e5], [d7] sont les cellules du premier motif qui va se répéter (de gauche à droite puis haut vers bas). La dernière cellule est la première cellule de la première répétition du motif. Ici, le premier motif est constitué de [d2], [e5] et le second motif commencera en [d7]
Dans le classeur joint, il y a trois "pseudo boutons" Hop! qui correspondent chacun à un motif différent (DistribuerTest1, DistribuerTest2, DistribuerTest3) et un bouton RàZ pour tout effacer.

Le code de Distribuer() est dans Module1 :
VB:
Sub Distribuer(Plage As Range, ParamArray Motif())
Dim i&, Source As Range, cellule As Range, k&, nbdepl&
   Application.ScreenUpdating = False
   Set Source = Plage.Columns(1)                         ' Source = 1ère colonne de Plage
   ReDim deplsucc(0 To UBound(Motif) - 1, 0 To 1)        ' tableau des déplacements successifs (ligne & colonne)
   For i = LBound(Motif) To UBound(Motif) - 1            ' boucle sur les cellules définissant le motif
      deplsucc(i, 0) = Motif(i + 1).Row - Motif(i).Row         ' calcul des déplacements d'une cellule à la cellule suivante
      deplsucc(i, 1) = Motif(i + 1).Column - Motif(i).Column   ' du motif (déplacement en ligne et en colonne)
   Next i
   Set cellule = Motif(0): k = -1               ' cellule de départ, un compteur k qui donne la ligne des déplacements à faire
   For i = 1 To Source.Cells.Count              ' boucle sur la plage des valeurs sources
      cellule.Value = Source.Cells(i, 1).Value  ' on affecte la valeur à la cellule courante du motif en cours
      k = (k + 1) Mod UBound(Motif)             ' on incrémente k et on prend son modulo par le (nombre de cellules -1) du motif
      Set cellule = cellule.Offset(deplsucc(k, 0), deplsucc(k, 1))   ' on définit la prochaine cellule à compléter
   Next i
End Sub
 

Pièces jointes

Dernière édition:

Pièces jointes

Parfait.


L'ajustement est probablement de la coller au bon endroit. 😉
Comme quoi, un classeur est vraiment mieux qu'une image... 😅
Merci pour le XLS , c'est nickel 🙂) Je ne sais pas ce que j'ai fait dans le second coller ?
Je ne peux pas comparer rapidement directement car mon ordi et donc mon excel est en anglais. Je regarderai un peu plus tard car ce que j'ai demandé c'est pour l'organisation d'un trail qui est ce WE. Bref , je suis un peu à la bourre.
Mais franchement ça m'aide vraiment énormément , je vais pouvoir imprimer demain, merci à tous !!
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…