Debogage

Bonjour à tous,

Je me retrouve face à un problème de "débogage" dans ma macro et je ne vois pas comment le résoudre. Je vous mets la partie de la macro où il y a le bug, et c'est la ligne souligné où je ne comprends pas?

  • ' On stocke ces données dans une feuille "Temporaire"
    Sheets("Temporaire").Activate
    Range("A1:ZZ65000").ClearContents
    [A1].Resize(Dico_boitegeo_lignes.Count) = Application.Transpose(Dico_boitegeo_lignes.Keys)
    [B1].Resize(Dico_boitegeo_lignes.Count) = Application.Transpose(Dico_boitegeo_lignes.Items)
    Application.DisplayAlerts = False
    Range("B1").Resize(Dico_boitegeo_lignes.Count).TextToColumns Other:=1, OtherChar:="|"
    Cells.EntireRow.AutoFit
    GEOBOX_DATAS = Sheets("Temporaire").Range("A1:CC" & Sheets("Temporaire").[A65000].End(xlUp).Row).Value
    Sheets("Temporaire").Visible = False

N’hésitez pas à me dire s'il faut plus d'informations

Merci par avance!

Bonjour kirbyb,

Un fichier est plus pratique a analyser qu'un bout de code mis comme tu as pu le faire, on ne sait même ce que contient "Dico_boitegeo_lignes.Count", mais comme ça je dirais que l'erreur pourrais venir du "resize" :

Je pense que "Resize" a besoin de 2 propriétés ( ligne, colonne ), essaye comme ceci:

[A1].Resize(Dico_boitegeo_lignes.Count,0) = Application.Transpose(Dico_boitegeo_lignes.Keys)

Bonjour,

Merci pour ta réponse! J'aimerais pouvoir mettre le fichier mais malheureusement c'est un fichier confidentiel.

J'ai essayé de faire comme écrit mais ça n'a pas l'air de fonctionner.. D'autres idées peut-être?

Bonjour à tous,

Curieux que ça passe pour

[A1].Resize(Dico_boitegeo_lignes.Count) = Application.Transpose(Dico_boitegeo_lignes.Keys)

et qu'il y ait une erreur ( laquelle ?) sur

[B1].Resize(Dico_boitegeo_lignes.Count) = Application.Transpose(Dico_boitegeo_lignes.Items)

Après quelques essais j'ai une erreur 1004 sur

Range("B1").Resize(Dico_boitegeo_lignes.Count).TextToColumns Other:=1, OtherChar:="|"

si la colonne B est vide . Mais pas d'erreur sur la ligne indiquée

le dictionnaire Dico_boitegeo_lignes contient-il des items ?

A+

Si le fichier est confidentiel, il y a peut-être moyen de l'anonymiser ?

Quand j'essaie d'anonymiser, bizarrement la macro fonctionne et il n'y a plus de "débogage"... La colonne B n'est pas vide et le dictionnaire Dico_boitegeo_lignes contient bien des items...

Je ne comprends vraiment pas ce qui ne fonctionne pas..

Bonjour à tous

Je reviens vers vous car j'ai essayé de manipuler le fichier un petit peu et je vois que dès qu'il y a trop de lignes, ma macro plante. Ça va jusqu'à un certain point puis ça me met le message d'erreur.

Pour rappelle, la partie qui ne fonctionnait pas dans ma macro est la suivante:

' On stocke ces données dans une feuille "Temporaire"

Sheets("Temporaire").Activate

Range("A1:ZZ65000").ClearContents

[A1].Resize(Dico_boitegeo_lignes.Count) = Application.Transpose(Dico_boitegeo_lignes.Keys)

[B1].Resize(Dico_boitegeo_lignes.Count) = Application.Transpose(Dico_boitegeo_lignes.Items)

Application.DisplayAlerts = False

Range("B1").Resize(Dico_boitegeo_lignes.Count).TextToColumns Other:=1, OtherChar:="|"

Cells.EntireRow.AutoFit

GEOBOX_DATAS = Sheets("Temporaire").Range("A1:CC" & Sheets("Temporaire").[A65000].End(xlUp).Row).Value

Sheets("Temporaire").Visible = False

Dans la phrase souligné, quand je passe le curseur dessus, ça m'écrit "Dico_boitegeo_lignes.Count = 379"

-> Comment serait-il possible de changer le chiffre 379? car je crois que c'est ici qu'il y a un bug

Merci par avance!

Toujours pas de précisions sur le code erreur ?

379 c'est le nombre d' éléments contenus dans le dictionnaire. c'est utilisé pour définir la taille de la plage où les données seront copiées; le modifier ne servirait à rien sauf si la plage déborde au delà du nombre de lignes admises par excel.

et pour le modifier il faudrait modifier la manière de "remplir" ce dictionnaire

Mais si ça marche pour [A1].Resize(Dico_boitegeo_lignes.Count) =.... par de raisons que ça ne marche pas pour B1

S'il y a plantage avec le fichier original et fonctionnement avec anonymisation des données , il faut chercher la source de l'erreur au niveau des données originales en commençant par une plage réduite puis en augmentant jusqu'à rencontrer l'erreur .

Sans les données en causes, on ne peut guère faire plus .....

Rechercher des sujets similaires à "debogage"