Fonction Orga.lignes sur Excel 2021

Bonjour,

Pour repartir des informations disponible sur une seule colonne sur plusieurs colonne suivant le type d’information, j’ai eu l’information qu’il existe la fonction ORGA.LIGNES , mais dans ma version Excel 2010 je ne l’ai pas trouver , j’ai passé à excel 2021 même chose je ne la trouve pas !

j créé alors une macro (c-joint fichier)

272orga-ligne.xlsm (15.61 Ko)

Sub Orga_ligne()

Dim i As Integer

Dim dl As Integer

Dim dla As Integer

dla = Range("a1000").End(xlUp).Row + 1 '# num dernière ligne non vide de la colonne A, ( +1 )

'# vider la^plage où renvoyer les resultats

Range("B2:D" & dla).Select

Selection.ClearContents

'##

i = 2

Do While i <= dla

dl = Range("b1000").End(xlUp).Row + 1 '## num ligne de dernière ligne colonne B non vide + 1 (utilisation de dl

' au lieu de i pour ne pas laisser des vides lorsque i saute de i à i+3

Range("b" & dl) = Range("a" & i)

Range("c" & dl) = Range("a" & i + 1)

Range("d" & dl) = Range("a" & i + 2)

i = i + 3

Loop

End Sub

que je veux c'est integrer cette fonction dans excel, comment on fait ?

Merci

Bonjour,

Si tu utilises maintenant Excel 2021, pense à mettre à jour la version sous ton avatar...

Pour ta demande, une solution Power Query en lieu et place d'une macro.

Si tu modifies le titre de la colonne, il faudra aussi le modifier dans la requête.

Pour mettre à jour, clic droit dans la requête, "Actualiser" (ou ruban "Données", "Actualiser tout")

Bonne fin d'apm

(Merci à JFL pour le code )

Bonjour

365 only...

Une fonction personnalisée ne doit pas se référer à une plage finie mais à des arguments passés à la fonction

Et ce doit être une Function et non une Sub

Cependant une fonction renvoie une valeur elle n'écrit pas dans d'autres cellules que celle qui contient la fonction.

Il faut donc prévoir une Sub avec des arguments : plage à répartir, nombre de colonnes, cellule d'angle de la destination et prévoir un bouton ou raccourci pour la lancer.

PowerQuery est bien plus souple et on peut aussi prévoir des paramètres...

Edit : coucou cousinhub

Bonsoir à tous !

Et donc avec Microsoft 365, cette possibilité, d'une grande complexité.... :

=ORGA.LIGNES(A2:A22;3)

La vie est plus simple avec les bons outils....

Re-,

Et donc avec Microsoft 365,

Vous vous dispersez, Mr JF.....

Le Monsieur, il a dit :

mais dans ma version Excel 2010 je ne l’ai pas trouver , j’ai passé à excel 2021

Bonne soirée....

Bonsoir à tous de nouveau !

Vous vous dispersez

Que nenni !

Passer d'Excel 2010 à Excel 2021 c'est bien. Encore un dernier effort et hop..... voilà Microsoft 365 !

Merci,

A tous ceux qui ont répondu,

Effectivement la vie est plus simple avec les bons outils, mais, si je peux passer à Excel 365 chez moi , c pas le cas sur les PC du bureau de travail, où est installé excel 2010 avec restriction sur l’installation des programmes, et je rencontre souvent des pb du bolo similaire à l'exemple que j posté.

Quant à Power Query j’ai jamais manipulé, mais je vais essayé.

@ cousinhub

Je n’ai pas compris les étapes faites pour obtenir ton result.

J’ai essayé et suis bloqué ici ↓je ne sais pas quelle étape entamer.

pq

crdl

Re

Donc la seule solution c excel 365, ce powerquerry que j pas encore assimilé ou c ma macro

RE

PowerQuery est intégré à Exwcel 2016 et plus mais en add on sur 2010 donc il faut l'installer

Des boîtes qui bossent avec des versions d'il y a plus de 12 ans...

Tu es mal parti : on doit avoir une source sous forme de tableau et depuis une cellule du tableau, Données, A partir d'un tableau

La seconde étape est automatique mais il faut parfois le modifier ou la supprimer

La 3ème et dernière étape est tapée directement dans la barre de formule

= Table.FromRows(List.Split(ModType[Colonne_brute],3), {"Nom", "Période", "Nationalité"})

ModType est le nom de l'étape précédente

Colonne_brute est un nom temporaire pour la transformation

Tu peux remplacer Nom par Savant

RE
@78chris
oui j corrigé pour faire source à partir d’un tableau, mais la formule finale j’ai pas pu la générer quand j’essayais avec des outils à boutons : j’ai testé tous les boutons ; donc il fallait la taper directement !!

Je l’ai fais ! j’ai passé à une étape arbitraire en cliquant sur un bouton; j’ai collé cette formule à la place de la formule genérée, j’ai renommé l’étape précédente et ça marche. (Apparemment même avec powerquery il a fallut connaitre un peu son langage qui s’appel langage ‘M’ d’après ce que j’ai trouvé sur M. google.

Concernant ce que tu dis dans ton message précédent « une fonction renvoie une valeur elle n'écrit pas dans d'autres cellules que celle qui contient la fonction ».

Et pourtant cette fonction Orga.lignes il suffit dans excel 365 de la tapper dans la première cellule et la valider par la touche entrer pour qu’elle s’étale sur toute la plage concernée. Comme d’ailleurs pour beaucoup d’autres fonctions qui sont censés renvoyer leurs résultats sur une plage de plusieurs cellules, sinon si c pas le cas l’étaler manuellement.

Ou tu veux dire que les fonctions personnalisées ne peuvent pas avoir cette caractéristique ?

Je vais essayer demain

Bonne nuit et merci

bonjour le fil, on avait aussi decalage en 2010

107orga-ligne.xlsm (20.92 Ko)

Bonsoir Bart

j'aime ces methodes qui combinent des fonctions simples intelligemment;

je vais examiner demain

bonne nuit

Bonjour à tous

Et pourtant cette fonction Orga.lignes il suffit dans excel 365 de la tapper dans la première cellule et la valider par la touche entrer pour qu’elle s’étale sur toute la plage concernée. Comme d’ailleurs pour beaucoup d’autres fonctions qui sont censés renvoyer leurs résultats sur une plage de plusieurs cellules, sinon si c pas le cas l’étaler manuellement.

Ou tu veux dire que les fonctions personnalisées ne peuvent pas avoir cette caractéristique ?

365 fonctionne de base en matriciel. En plus si les cellules sont apparemment remplies : il y a une seule formule et on ne peut écrire dans les autres sauf à générer une erreur. Microsoft appelle cela un tableau dynamique

Même sur 365 je ne pense pas qu'on puisse fabriquer le même type d'objet nous-mêmes ...

Bonjour à tous

Petit réarrangement (dans la forme) pour la méthode de Bart pour qu’elle soit plus facile à expliquer

42orga-ligne.xlsm (16.85 Ko)

@BsAlv

On peut écrire

=DECALER($A$2;3*(LIGNE()-2)+(COLONNE()-COLONNE($J$1));;;)

Pour référence $A$2 :

Et pour les noms des savants le décalage est 3*(LIGNE()-2)

à ligne()=2 on a (LIGNE()-2)=0 on ne décale de rien pour retrouver le nom du 1er savant ; mais on décale de (COLONNE()-COLONNE($J$1))=1 de plus pour la période et de COLONNE()-COLONNE($J$1)=2 de plus pour la nationalité

à ligne()=3 on a (LIGNE()-2)=1 on décale de 3*1=3 pour retrouver le nom du 2ème savant) mais on décale de (COLONNE()-COLONNE($J$1))=1 de plus pour la période et de (COLONNE()-COLONNE($J$1))=2 de plus pour la nationalité

à ligne()=4 on a (LIGNE()-2)=2 on décale de 3*2=6 pour retrouver le nom du 3ème savant) mais on décale de (COLONNE()-COLONNE($J$1))=1 de plus pour la période et de ((COLONNE()-COLONNE($J$1))=2 de plus pour la nationalité

Et ainsi de suite….

Crdl

Rechercher des sujets similaires à "fonction orga lignes 2021"