pyb54
Messages postés33Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention15 février 2010
-
9 juil. 2008 à 12:19
pyb54
Messages postés33Date d'inscriptionmercredi 2 juillet 2008StatutMembreDernière intervention15 février 2010
-
10 juil. 2008 à 08:20
Bonjour je travaille actuellement sur une application afin d'importer des feuilles excel dans une base de données, jusque la pas de problèmes, seulement les feuilles excel ( des factures pour être précis ) possède parfois des colonnes vides et le cas échéant ma commande TransferSpreadsheet me renvoie une erreur du style le champ f5 n'existe pas.
J'ai tenté de procéder à un "masquage" en masse des colonnes vides mais ensuite la feuille ne comportant plus un nombre valide de colonnes, l'importation est aussi impossible.
Je cherche donc à décaler mes colonnes, avec un code qui repère quand une colonne est non vide et que celle à gauche l'est.
Quelqu'un saurait me faire partager ses lumières ?
J'ai écris un bout de code qui pour le moment renvoit un "overflow" en erreur ( boucle infini ? ) bref je bloque cette fois
le code en question :
For i = 0 To Columns.Count - 1
nbColumn = Columns
If nbColumn(i).Value <> "" And nbColumn(i - 1).Value = "" Then
nbColumn(i).Select
Selection.Cut
nbColumn(i - 1).Select
ActiveSheet.Paste
End If
Next i
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 9 juil. 2008 à 17:10
Quand je parle de feuille tampon (je suis écoeuré, bigfish_le vrai, tu m'enlèves une jolie réplique ^^), je parle d'une feuille temporaire, d'une feuille Excel toute bête en fait ... une feuille blanche :)
Et pour copier, tu peux utiliser l'enregistreur de macro pour avoir la syntaxe exacte, mais ça donnerait un truc du genre :
Copie de la feuille "TaFeuille" sur la feuille "Tampon" :
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 9 juil. 2008 à 14:18
Plutôt que de masquer des colonnes, j'utiliserai une feuille tampon personnellement :
Avec ton code, tu vas d'abord vérifier toutes tes colonnes une par une, et si elles ne sont pas vides, tu copies la colonne dans ta feuille tampon. En faisant ça dans l'ordre des colonnes et en copiant une par une, sur ta feuille tampon, tu auras une feuille contenant toutes tes données avec seulement des colonnes non vides.
'te reste plus qu'à faire ton transfertSpreadSheet, systématiquement sur la feuille tampon.
Une feuille excel contient toujours 256 colonnes. Que tu ajoutes une colonne ou que tu supprimes une colonne elle en contient toujours 256.
Donc je ne vois pas quel pourrait etre le probleme si tu supprimes les colonnes vides plutot que de les masquer.
J'ai une question avant d'aller plus loin est-ce que l'on pourrait ce referer a une seule ligne pour determiner qu'une colonne est vide ou non ? Autrement dit, est-ce que si l'on regarde le contenu de la ligne 1(par exemple), les cellules de cette ligne qui croisent les colonnes dite non vide sont elles aussi toujours non vide a coup sur ?
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?