IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Mettre en colonne toutes les valeurs d'un tableau [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Mettre en colonne toutes les valeurs d'un tableau
    Bonjour,

    Sur ma feuille 1, j'ai un tableau où chaque ligne a un nombre différent de valeurs.
    Sur ma feuille 2, je voudrais pouvoir mettre, sur une seule et même colonne toutes les valeurs de la ligne 1, suivies de toutes les valeurs de la ligne 2, etc.

    Quelqu'un a-t-il une idée?

    PS: Si besoin, je connais le nombre maximum de valeurs sur chacune de mes lignes, ce qui fait que je pourrais définir un tableau où chaque ligne aurait une série de valeurs puis des cases vides qu'il faudrait bien sûr ignorer...

    Merci d'avance!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il me semble que la solution passe par la concaténation. Celle-ci peut se faire de 2 façons :
    à copier en A1 de la feuille 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Feuil1!A1&" "&Feuil1!B1&" "&Feuil1!C1
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CONCATENER(Feuil1!A1;" ";Feuil1!B1;" ";Feuil1!C1)

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tu peux commencer par faire une transposée, c'est-à-dire passer tes lignes en colonnes.
    Pour ça, tu commences par copier toute la zone de ta feuille 1 où se trouves les données et, dans ta feuilles 2,
    Bandeau Accueil > Coller > Collage Special > Cocher l'option "Transposé"

    Reste ensuite à les mettre toutes dans une seule colonne.
    Pour ça, je ne connais pas de méthode simples.
    Si tu n'as pas trop de données, le plus simple est encore de faire des glisser.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Tout d'abord merci de vos réponses, mais cela ne semble pas correspondre à mes besoins...

    Je n'ai peut être pas été assez clair. Voici un exemple un peu plus précis:
    Sur ma feuille 1, j'ai:
    Sur ma ligne 1: J'ai par exemple "Connaissances:"
    Sur ma ligne 2: "A1", "B1" et "C2"
    Sur ma ligne 3: "Capacités:"
    Sur ma ligne 4: "2", "11Niv2", "16Niv1"
    etc.
    Le nombre de données sur mes lignes 2 et 4 varient au fur et à mesure des saisies (faites sur la feuille 3).

    Sur ma feuille 2, je voudrais avoir:
    Sur ma ligne 1: "Connaissances:"
    Sur ma ligne 2: "A1"
    Sur ma ligne 3: "B1"
    Sur ma ligne 4: "C2"
    Sur ma ligne 5: "Capacités:"
    etc.

    Bien sûr, les données de la feuille 1 variant, il faut que la feuille 2 s'actualise de manière dynamique!


    Comme piste:
    - j'ai trouvé la formule qui compte le nombre de données sur chacune des lignes
    - je voudrais trouver une formule du type :
    "Je regarde SI le numéro de la LIGNE de la case (feuille2) est <= au nombre de données sur la ligne 1 (feuille1).
    Si vrai, j'écris la donnée inscrite dans la colonne (feuille 1) qui a le même numéro que la ligne où je suis (feuille2),
    Sinon, je regarde SI numéro de ligne (feuille 2) <= somme (nombre de données de la ligne 1 et 2(feuille 1)),
    si vrai, j'écris la donnée inscrite dans la colonne (feuille 1) qui a le même numéro que la ligne où je suis (feuille2) moins le nombre de données de la ligne 1 (feuille1),
    sinon je regarde SI numéro de ligne (feuille 2) <= somme (nombre de données de la ligne 1, 2 et 3), etc.

    J'espère être clair...

    @JcDSoft: Concaténer toutes les données lignes par ligne, d'accord... mais après?

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne pense pas que ce que tu souhaites puisse se faire par des fonctions Excel (peut-être avec des DECALER() mais ce serait très compliqué).
    Il faudrait passer par une macro VBA.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Et du coup cela donnerait quoi en VBA?

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    A condition d'avoir bien compris, voici une solution en VBA parmi d'autres.
    La feuille source dont le nom est défini par la constante shtSourceName et le nom de la feuille cible par la constante shtTargetName (Il suffit donc de changer la valeur des constantes si elles ne correspondent pas à ton cas).
    Les valeurs de la feuille source commencent à la ligne 1, colonne 1 et certaines lignes peuvent avoir une ou plusieurs colonnes remplies.
    Le but étant d'exporter sur une seule colonne toutes ces valeurs vers la feuille cible
    Le code utilise une variable tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Test()
     Const shtSourceName As String = "Feuil1", shtTargetName As String = "Feuil2"
     Dim tbl(), r As Long, c As Integer, rTo As Long
     With ThisWorkbook
      tbl = .Worksheets(shtSourceName).Range("A1").CurrentRegion.Value
      With .Worksheets(shtTargetName)
       For r = 1 To UBound(tbl)
        For c = 1 To UBound(tbl, 2)
         If Len(tbl(r, c)) Then rTo = rTo + 1: .Range("A" & rTo) = tbl(r, c)
        Next c
       Next r
      End With
     End With
    End Sub

  8. #8
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Super! merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] mettre a jour toutes les valeurs d'un colonne dans une zone de liste
    Par yieiyiei dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/04/2015, 21h41
  2. Réponses: 9
    Dernier message: 08/02/2012, 18h40
  3. PROC TABULATE : Mettre en couleur toutes les valeurs d'une ligne total
    Par CHmartine dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 04/10/2011, 16h58
  4. [MySQL] Requête pour récupérer toutes les valeurs d'un tableau
    Par djoumusic dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 24/08/2008, 22h11
  5. initialiser toutes les valeurs d'un tableau
    Par Biosox dans le forum C++
    Réponses: 1
    Dernier message: 09/11/2007, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo