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 :

Tableau structuré "cale" à 256 lignes ! [XL-2016]


Sujet :

Excel

  1. #1
    Membre actif
    Inscrit en
    août 2009
    Messages
    752
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 752
    Points : 279
    Points
    279
    Par défaut Tableau structuré "cale" à 256 lignes !
    Bonjour,

    Suite à l'apprentissage des tableaux structurés, j'en use et abuse.

    Là j'ai un cas bizarre, j'ai un tableau structuré vide présent sur une feuille. une requete SQL charge des valeurs dans le tableau. or celui ci se limite à 256 lignes le reste des données en dessous n'est pas dans le tableau.

    L'un des intérets du tableau c'est de ne pase se soucier de la recopie des formules, si je dois lire la dernière ligne et redimensionner mon tableau c'est moins intéressant.

    PAr ailleurs j'ai d'autres classeurs où je récupère des milliers de lignes snas problème.

    J'ai même recréé le classeur mais le phénomène reste.

    ce qui est étrange c'est la valeur 256 !
    merci pour vos conseils.

    Denis

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 265
    Points : 13 752
    Points
    13 752
    Par défaut
    Bonjour

    Voir du côté de la requête et/ou du code qui charge
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre actif
    Inscrit en
    août 2009
    Messages
    752
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 752
    Points : 279
    Points
    279
    Par défaut
    Bonjour Chris,

    Cela était évident, mais pas très logique quand au phénomène.

    En effet au départ je collais les données dans la troisième colonne du tableau.
    Les colonnes 1 et 2 de mon tableau sont pour des formules que je mets après la réception des données.
    et donc allez savoir pourquoi, l'effet induit et de n'étendre le tableau que sur 256 lignes, ce qui tend à prouver que ce doit etre dans le code. 256 = 2^8.
    par contre en collant en première colonne ça marchait, j'ai donc essayé de remplir avec une valeur bidon mes premières colonnes et le résultat était le même !

    C'est là que le tilt est venu. le problème n'était pas devant mais derrière.
    Lorsque j'ai basculé mes cellules en tableau structuré, il n'y avait pas de données sur les deux dernières colonnes, donc le tableau était trop petit à droite, et comme je ne colle que les données et pas les entêtes, il ne pouvait l'agrandir à droite
    et l'effet bizarre est donc de ne créer que 256 lignes.

    J'ai donc étendu mon tableau avec deux colonnes supplémentaires et ça fonctionne !

    en tout cas merci de m'avoir renvoyé à mes devoirs.
    Bonne journée
    Denis

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 265
    Points : 13 752
    Points
    13 752
    Par défaut
    RE

    Merci du retour

    C'est effectivement bizarre comme phénomène.

    Vérifie que ta version est à jour : il y a peut-être eu une correction de ce bug bizarre sinon cela mériterait d'être remonté sur un blog Microsoft...
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    16 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 16 796
    Points : 48 275
    Points
    48 275
    Billets dans le blog
    91
    Par défaut
    Salut.

    Je ne suis pas arrivé à reconstituer le phénomène, qui est effectivement bien étrange. J'ai quelques tableaux chez un client dans lequel je rapatrie des données SQL sur base d'une procédure stockée appelée par VBA et je n'ai jamais rencontré le problème...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Je mets SYTEMATIQUEMENT un lorsque la réponse ne propose pas un tableau structuré alors que ce dernier devrait être utilisé (par ex en travaillant sur la colonne entière).
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre actif
    Inscrit en
    août 2009
    Messages
    752
    Détails du profil
    Informations forums :
    Inscription : août 2009
    Messages : 752
    Points : 279
    Points
    279
    Par défaut
    Bonjour Pierre,

    Mais c'est juste au cas où, puisque mon problème est résolu en ayant créé les deux colonnes qui me manquaient

    Ce qui est complètement fou, c'est que : si mon tableau a une colonne de moins que la requete, j'ai le bug
    si je réduit mon tableau à quelques colonnes il le redimmensionne correctement.
    j'arrive à le refaire comme je veux. J'ai essayé de le faire en faisant des copiers/collers, mais là le phénomène ne se produit pas.
    la preuve par l'image en haut le tableau s'arrete à 256, ensuite j'ai carément réduit mon tableau et relancé la requete, et là il redimensionne .

    Nom : 2021-01-19 17_56_55-Start.jpg
Affichages : 25
Taille : 440,5 Ko

    à tout hasard je colle mon code de requete SQL
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub GetDataFromADO()
    ' to be sure first clean all data
    If ActiveSheet.FilterMode Then
        ActiveSheet.ShowAllData
    End If
     
        'Declare variables'
            Dim objMyConn As ADODB.Connection
            Dim objMyCmd As ADODB.Command
            Dim objMyRecordset As ADODB.Recordset
     
            Set objMyConn = New ADODB.Connection
            Set objMyCmd = New ADODB.Command
            Set objMyRecordset = New ADODB.Recordset
     
        'Open Connection'
            objMyConn.ConnectionString = "Provider=SQLOLEDB ..."
            objMyConn.Open
    '*************************
     'Set and Excecute SQL Command'
            Set objMyCmd.ActiveConnection = objMyConn
            objMyCmd.CommandText = "SELECT APR_Inventory.Location, Group_, APR_Inventory.ProductNo, TEXT_TRANSLATION.Medium, APR_Inventory.Quantity, APR_Inventory.UomCode, Decimal07, Decimal01, APR_Inventory.LotNo, String02, APR_Inventory.Container, [MON_SYSTEME].[dbo].[INVENTORY].[LastUpdateOn]," & _
            " SUBSTRING([MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC].[String02], 2, 7)  + CASE [MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC].[Integer05] WHEN 1 THEN '1' ELSE '9' END + SUBSTRING([MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC].[String02], CHARINDEX('-', [MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC].[String02]) + 2, 2) AS Batch" & _
            " FROM [MON_SYSTEME].[dbo].[APR_Inventory]" & _
            " INNER JOIN [MON_SYSTEME].[dbo].[INVENTORY] ON ID = INVENTORYID" & _
            " INNER JOIN [MON_SYSTEME].[dbo].[PRODUCT] ON PRODUCT.ID = APR_Inventory.ProductID" & _
            " INNER JOIN [MON_SYSTEME].[dbo].[TEXT_TRANSLATION]ON TEXT_TRANSLATION.TextID = PRODUCT.TextID AND LanguageID = '1036'" & _
            " INNER JOIN [MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC] ON [MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC].[LotNo] = APR_Inventory.LotNo" & _
            " LEFT JOIN [MON_SYSTEME].[dbo].[LOT_NO] ON [MON_SYSTEME].[dbo].[LOT_NO].[lotno] = [MON_SYSTEME].[dbo].[Z_LOT_NO_CHARACTERISTIC].[LotNo]" & _
            " INNER JOIN [MON_SYSTEME].[dbo].[PRODUCT_GROUP] ON [MON_SYSTEME].[dbo].[PRODUCT_GROUP].[PRODUCTID] = APR_Inventory.ProductID and GroupClassID = '100000038'" & _
            " LEFT JOIN [MON_SYSTEME].[dbo].[z_sap_batch] ON [MON_SYSTEME].[dbo].[z_sap_batch].[lotno] = APR_Inventory.LotNo" & _
            " WHERE ( APR_Inventory.Container IS NULL OR NOT (APR_Inventory.Container LIKE '62%' OR APR_Inventory.Container LIKE '30%')) and APR_INVENTORY.Location not like 'E999%'" & _
            " and GROUP_ like '%ZRO%' " & _
            " and APR_Inventory.ProductNo not like '%[_]%' " & _
            " and APR_Inventory.ProductNo like '%" & Num_Art & "%' " & _
            " ORDER BY APR_Inventory.ProductNo, APR_Inventory.LotNo"
            objMyCmd.CommandType = adCmdText
     
        'Open Recordset'
            Set objMyRecordset.Source = objMyCmd
            objMyRecordset.Open
            Range("D2").CopyFromRecordset objMyRecordset

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    16 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 16 796
    Points : 48 275
    Points
    48 275
    Billets dans le blog
    91
    Par défaut
    Salut Denis,

    Je vais essayer avec un CopyFromRecordset sur les cas que tu signales
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Je mets SYTEMATIQUEMENT un lorsque la réponse ne propose pas un tableau structuré alors que ce dernier devrait être utilisé (par ex en travaillant sur la colonne entière).
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/11/2019, 09h30
  2. [XL-2019] Empêcher la suppression de la ligne de total d'un tableau structuré.
    Par RJSCVF dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/11/2019, 15h25
  3. [XL-2013] Liaison vers tableau structuré ligne précise
    Par Aymeline dans le forum Excel
    Réponses: 7
    Dernier message: 01/10/2019, 18h00
  4. [XL-2016] problème ajout ligne sur tableau structuré
    Par anasecu dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/07/2019, 09h13
  5. [Toutes versions] ajout d'une ligne dans un tableau structuré dans un fichier fermé
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 02/07/2019, 11h06

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