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

JavaScript Discussion :

Copier des cellules fusionnées d'un tableau HTML


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de xanav
    Inscrit en
    Mars 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 55
    Points : 53
    Points
    53
    Par défaut Copier des cellules fusionnées d'un tableau HTML
    Bonjour,

    Je débute en HTML et Javascript et, après des heures de recherches sur internet, je suis toujours bloqué. Voici mon problème :
    J'ai un tableau HTML dans lequel les 2 1ères lignes correspondent à une entête. La hauteur des cellules n'est pas fixe et je souhaiterais ré-insérer ces 2 lignes lorsque la hauteur de mon tableau dépasse un certain nombre de pixels. Toutes mes lignes sont identifiées par id=Lig0 (ou 0 = numéro de ligne).

    Voici le script que j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    var taille = 0;
    var i = 0;
    var trouve = false;
    while(i<=32 && !trouve) //32 == Nb lignes
    {
      i++;
      var ligne = document.getElementById('Lig'+i);
      taille = taille + ligne.clientHeight;
      if(taille > 700)
      {
         trouve = true;
         alert('taille = ' + taille + ' à partir de Lig' + i);
     
         var tableau = document.getElementById('TableLignes');
         var ligEntete = tableau.insertRow(i-1);
         var ligEntete1 = document.getElementById('Lig1Entete');
         for(var nbCel=0; nbCel<ligEntete1.cells.length; nbCel++)
         {
           var Cellule = ligEntete.insertCell(nbCel);
           Cellule.innerHTML = ligEntete1.cells(nbCel).innerHTML;
           if(nbCel==0 || nbCel==6) {Cellule.rowspan=2;}
         }
     
         var ligEntete = tableau.insertRow(i);
         var ligEntete2 = document.getElementById('Lig2Entete');
         for(var nbCel=0; nbCel<ligEntete2.cells.length; nbCel++)
         {
           var Cellule = ligEntete.insertCell(nbCel);
           Cellule.innerHTML = ligEntete2.cells(nbCel).innerHTML;
         }
      }
    }
    cela fonctionne bien sauf pour les cellules fusionnées. En effet, pour les colonnes 1 et 7, les cellules sont fusionnées sur les 2 lignes. Dans un premier temps, j'avais essayé de copier le innerHTML des 2 <Tr> mais j'avais une erreur inconnue. En copiant cellule par cellule, il m'insère bien mes cellules mais le rowspan ne semble pas fonctionner...

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1

  3. #3
    Membre du Club Avatar de xanav
    Inscrit en
    Mars 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 55
    Points : 53
    Points
    53
    Par défaut
    Noooon, pffff, depuis le temps que je me galère la dessus, je suis vraiment trop c** ...

    Bon merci bien en tout cas ça à l'air de marché. Par contre j'aurais quand même une autre question :
    Pourquoi ceci ne fonctionne pas à la place des boucles ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var ligEntete = tableau.insertRow(i);
    ligEntete.innerHTML = document.getElementById('Lig1Entete').innerHTML;
     
    ligEntete = tableau.insertRow(i+1);
    ligEntete.innerHTML = document.getElementById('Lig2Entete').innerHTML;
    Cela fait une erreur inconnu après le 1er insert, pourtant dans le debugger, "document.getElementById('Lig1Entete').innerHTML" me revoie bien ma suite de <td>. Si je pouvais le faire, ça m'éviterais d'écrire en dur dans mon code, la structure de mon entête.

Discussions similaires

  1. [XL-2007] Copier-coller des cellules pour alimenter un tableau
    Par DidierBoz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/06/2017, 11h40
  2. Réponses: 3
    Dernier message: 04/06/2015, 21h31
  3. [WD-2010] Parcourir un tableau avec des cellules fusionnées
    Par Tanoffy dans le forum VBA Word
    Réponses: 0
    Dernier message: 09/12/2014, 14h05
  4. Réponses: 7
    Dernier message: 22/03/2011, 18h00
  5. [VBA-E]:copier des cellules en gardant les fomules
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2006, 10h53

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