MATHEMATIQUE

S

skippy

Guest
Bonjour à tous

voilà un petit pb que j'ai du mal à résoudre simplement

j'ai 4 colonnes
dans chaque colonne il y a X lignes

je voudrais concaténer
toutes les valeurs ensembles

ex : A1 B1 C1 D1
puis
A1 B1 C1 D2
puis
A1 B1 C1 D3
puis
A1 B1 C2 D1
puis
A1 B1 C2 D2
etc

merci d'avance
 
S

skippy

Guest
Bonjour à tous

merci PhiBou pour ce fichier

impressionnant, je pensais connaître excel mais là je suis calmé !! je n'avais jamais vu une formule aussi dingue !!

malheureusement, initialement j'ignore combien de colonne je vais avoir ni combien de ligne par colonne !!

sinon il me faudrait cela en vba si possible

help

désolé, mais merci beaucoup
 
C

ChristianS

Guest
Bonjour le Forum,
Y aurait-il une solution en utilisant 2 feuilles ?:

sur la 1ère,
on entre les colonnes et les lignes manuellement (il faut bien que les données viennent de qq part)
on detecte le nombre de colonnes

sur la 2ème on applique l'exemple de Pascal aprés y avoir collé, en tête de feuille, le récapitulatif des données de la 1ère si nécessaire

A+
ChS
 
P

Pascal76

Guest
Bonjour tout le monde

Bon j'ai réfléchi hier soir et j'ai appliqué ce matin

En principe la macro s'adapte à un nombre de colonnes variable avec un nombre de lignes variable par colonnes.

Seuls contraintes dans l'exemple que je t'ai donné c'est qu'il n'y ait pas d'entête de colonnes (je suis parti de ton exemple où les données commence ligne 1 dans chaque colonne) sinon il faut faire quelques modifs, et que le résultat puisse s'afficher sur une seule feuille soit quand même 16777216 résultats

Tu dis si cela te va

Pascal
 

Pièces jointes

  • Classeur1.zip
    12.8 KB · Affichages: 24
  • Classeur1.zip
    12.8 KB · Affichages: 19
  • Classeur1.zip
    12.8 KB · Affichages: 23
S

skippy

Guest
Bonjour à tous

Salut Pascal

bon, je crois que cela est bon !!

il y a juste une chose, lorsque je ne met qu'une ligne (disons dans la colonne 2) cela ne va pas du tout (!!!) il met la valeur de la cellule A1 dans toutes les cellules de la page résultat !!

(quand même mille merci pour ce bout de code)

a++
 
S

skippy

Guest
Rebonjour Pascal

voilà, j'ai arrangé le code comme je le désirai

je gère juste le cas où il n'y a qu'une ligne

une partie du code:


For x = 1 To MesColonnes
If Cells(2, x).Value <> "" Then MesLignes = MesLignes * (Sheets("Base").Cells(1, x).End(xlDown).Row)
Next

MonNbre = MesLignes
For y = 1 To MesColonnes

If Cells(2, y).Value <> "" Then
MaLigne = Sheets("Base").Cells(1, y).End(xlDown).Row
Else
MaLigne = 1
End If



encore merci pour ton aide

a+++
 
P

Pascal76

Guest
Re

Exact, j'avais oublié cette condition.
En principe je fais MaLigne = Sheets("Base").Cells(65536, y).End(xlUp).Row

Mais je ne savais pas pas si tu avais des choses dans les lignes en dessous.

Donc soit tu fais comme tu as fait soit si tu n'as que tes valeurs sur ta feuille soit tu peux utiliser le nouveau fichier

Bon courage

Pascal
 

Pièces jointes

  • Classeur1.zip
    11.8 KB · Affichages: 11
  • Classeur1.zip
    11.8 KB · Affichages: 14
  • Classeur1.zip
    11.8 KB · Affichages: 18

Discussions similaires

Statistiques des forums

Discussions
313 060
Messages
2 094 924
Membres
106 128
dernier inscrit
lopierre