XL 2013 EXCEL : Ventiler des données dynamiquement

ROMAIN1804

XLDnaute Nouveau
Bonjour,

Je travaille sur un document Excel qui devra s'incrémenter dans un logiciel afin d'intégrer des réservations.
Celui ci vient d'un fichier d'export d'un autre logiciel et afin de l'importer dans le 2eme logiciel sur lequel je travaille, le format doit être bon et correspondre afin que tout s'importe correctement.

J'aimerai sur l'Excel sur lequel je travaille les choses suivantes :
- Pour chaque même n° de dossier, que chaque occupant soit ventilé en colonne (noms et prénoms).
- A chaque changement de n° de dossier (nouvelle réservation), que cette ventilation se fasse automatiquement sur une nouvelle ligne.

je vous joins le doc excel pour exemple et pour mieux comprendre ma requête.

Merci d'avance pour votre aide :)
Bonne journée !
 

Pièces jointes

  • TEST_VENTILATION.xlsx
    23 KB · Affichages: 22

JHA

XLDnaute Barbatruc
Bonjour à tous,

A tester, formule matricielle.
VB:
=SI(NB.SI($K$2:$K2;$K2)=1;SIERREUR(SI(MOD(COLONNE();2)=0;INDEX($M$2:$M$13;PETITE.VALEUR(SI($K$2:$K$13=$K2;LIGNE($K$2:$K$13)-1);COLONNES($A:B)/2));INDEX($L$2:$L$13;PETITE.VALEUR(SI($K$2:$K$13=$K2;LIGNE($K$2:$K$13)-1);COLONNES($A:A)/2)));"");"")

JHA
 

Pièces jointes

  • TEST_VENTILATION.xlsx
    28.1 KB · Affichages: 12

ROMAIN1804

XLDnaute Nouveau
Bonjour à tous,

A tester, formule matricielle.
VB:
=SI(NB.SI($K$2:$K2;$K2)=1;SIERREUR(SI(MOD(COLONNE();2)=0;INDEX($M$2:$M$13;PETITE.VALEUR(SI($K$2:$K$13=$K2;LIGNE($K$2:$K$13)-1);COLONNES($A:B)/2));INDEX($L$2:$L$13;PETITE.VALEUR(SI($K$2:$K$13=$K2;LIGNE($K$2:$K$13)-1);COLONNES($A:A)/2)));"");"")

JHA

Bonjour,

Merci encore pour votre formule.
Cependant quand je l'applique sur mon fichier sur lequel je travaille je n'arrive pas à l'étirer sur les lignes suivantes. Cela ne fonctionne pas.
Plutôt que de copier "bêtement" j'ai donc voulu la retranscrire dans mon fichier, mais je vois en plus que dans la formule il ya en référence les colonnes A:B, mais j'avoue ne pas comprendre pourquoi par rapport au fichier envoyé ?

Si jamais vous pouvez m'eclairer là dessus ce serait parfait :)
Bonne journée,
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Cette formule n'est pas facile, je te suggère d'utiliser l'évaluation de la formule pour mieux la comprendre.
exemple tu cliques en N2 puis dans le ruban onglet Formules/Evaluer la formule puis tu cliques sur le bouton Evaluer pour voir pas à pas ce que fait la formule.
Refait la même manipulation en O2

COLONNES($A:A) signifie 1
COLONNES($A:B) signifie 2
Du fait que l'on doit mettre le prénom sur une colonne et le nom sur la colonne suivante, il y a 2 formules dans la même formule et je divise donc par 2.

Pour situer soit le nom ou le prénom, on utilise la fonction MOD(COLONNE();2)=0

Il se peut que sur ton fichier de travail les données ne sont pas placées au même endroit.
Pour cette formule, NB.SI($K$2:$K2;$K2)=1
fais bien attention aux signes "$"

JHA
 

ROMAIN1804

XLDnaute Nouveau
Bonjour,

Je vous remercie pour vos précisions. Cependant, en ayant essayer maintes et maintes fois je n'arrive toujours pas à étirer la formule en ligne et en colonne. Mes données ne vont pas seulement jusqu'à la ligne 13 mais jusqu'à la ligne 1010. J'ai pourtant bien fais attention aux dollars, et les données sont placées au même endroit sur mon fichier de travail.

Bien cordialement,
 

Pièces jointes

  • TEST VENTIL 2.xlsx
    74.1 KB · Affichages: 4

JHA

XLDnaute Barbatruc
Bonjour à tous,

Il n'y a pas d'erreur dans les formules mais en colonne "K", tu as plein de NA. je te suggère de rajouter une fonction sierreur() pour éviter cela.
Pour le moment j'ai supprimé les NA de la colonne "K"
VB:
=SIERREUR(RECHERCHEV(J2;'Z:\A échanger\Stagiaire CDG\RESALYS\[TEST FICHIER IMPORT CCAS - macro.xlsx]Fichier import resalys'!$A:$F;6;FAUX);"")

JHA
 

Pièces jointes

  • TEST VENTIL 2.xlsx
    448.1 KB · Affichages: 6

ROMAIN1804

XLDnaute Nouveau
Bonjour,
Je me permets de rouvrir le sujet car je dois de nouveau travailler sur le ficher EXCEL qui avait été monté, en effet je dois y inclure de nouvelles données. Le fichier à très bien rempli son rôle cet été.
Cependant, je peux maintenant importer les dates de naissances des occupants dans le logiciel de réservation.
Ainsi je dois retravailler le fichier de conversion EXCEL.
Sur le même principe qu'avant mais en ajoutant les dates de naissances sous formes de colonnes (1 DDN par occupant).
J'ai essayé de retravailler le fichier seul en reprenant les formules. Le problème est que mes formules ne fonctionnent pas. Les cases restant vides, je pense qu'il y a donc un problème dans celles ci. De plus cela impactent les autres formules et rien ne fonctionne correctement.
Comme sur le 1er fichier le but est de passer sous forme de colonne (1 colonne noms, 1 colonne prénom, 1 colonne date de naissance) les données qui sont prises sur une autre feuille sous forme de ligne.
Je vous joins le fichier tel que je veux retravailler. J'ai mis en gris les colonne "birthdate" dans lesquelles les mauvaises données vont. J'avais repris le fichier en modifiant les formules mais c'était moins parlant donc j'ai supprimé ce que j'ai fait pour que cela reste conforme.
Si vous avez une idée... Merci d'avance.
(Pour que ce soit plus simple j'ai mis un fichier original sans date de naissance, et celui sur lequel je souhaite les ajouter)
 

Pièces jointes

  • Trame_Import_reservation.xlsm
    814.5 KB · Affichages: 2
  • TEST TRAME AVEC DDN.xlsm
    817.2 KB · Affichages: 2

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer en "02" validation matricielle (Ctrl+Maj+Entrée)
VB:
=SI(NB.SI($K$2:$K2;$K2)=1;SIERREUR(SI(MOD(COLONNE()-1;2)=0;INDEX($M$2:$M$29;PETITE.VALEUR(SI($K$2:$K$29=$K2;LIGNE($K$2:$K$29)-1);COLONNES($A:C)/2));INDEX($L$2:$L$29;PETITE.VALEUR(SI($K$2:$K$29=$K2;LIGNE($K$2:$K$29)-1);COLONNES($A:B)/2)));"");"")
Copier vers le bas et la droite

JHA
 

Pièces jointes

  • TEST TRAME AVEC DDN.xlsm
    848.6 KB · Affichages: 7

ROMAIN1804

XLDnaute Nouveau
Bonjour à tous,

A essayer en "02" validation matricielle (Ctrl+Maj+Entrée)
VB:
=SI(NB.SI($K$2:$K2;$K2)=1;SIERREUR(SI(MOD(COLONNE()-1;2)=0;INDEX($M$2:$M$29;PETITE.VALEUR(SI($K$2:$K$29=$K2;LIGNE($K$2:$K$29)-1);COLONNES($A:C)/2));INDEX($L$2:$L$29;PETITE.VALEUR(SI($K$2:$K$29=$K2;LIGNE($K$2:$K$29)-1);COLONNES($A:B)/2)));"");"")
Copier vers le bas et la droite

JHA

Bonjour,

Tout d'abord meilleures voeux pour cette année 2022.
Je ne m'étais pas remis sur mon fichier car bien débordé, merci beaucoup pour votre réponse j'essaie de regarder pour l'utilisation de votre formule :)

Bonne journée,
Romain.
 

Discussions similaires

Statistiques des forums

Discussions
315 065
Messages
2 115 872
Membres
112 604
dernier inscrit
CriCri16