Excel : Ubound => Incompatibilité de type
Résolu/Fermé
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
-
2 janv. 2017 à 18:56
Utilisateur anonyme - 3 janv. 2017 à 18:04
Utilisateur anonyme - 3 janv. 2017 à 18:04
A voir également:
- Ubound excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
5 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
2 janv. 2017 à 19:08
2 janv. 2017 à 19:08
Bonjour,
Tu n'as peut-être qu'une cellule dans ta colonne et donc pas de table.
Tu n'as peut-être qu'une cellule dans ta colonne et donc pas de table.
Utilisateur anonyme
Modifié par albkan le 2/01/2017 à 19:15
Modifié par albkan le 2/01/2017 à 19:15
Bonjour NaXiLeAn,
Bonne année 2017 !
1) LTInf non déclaré => type implicite : Variant
2) Range("K1:K1") = "<START>" => Range("K1") = "<START>"
3) Où est ton End Sub ?
4) Close est pour fermer un fichier qu'on a ouvert avant,
mais il n'y en n'a pas.
Cordialement. :)
Bonne année 2017 !
1) LTInf non déclaré => type implicite : Variant
2) Range("K1:K1") = "<START>" => Range("K1") = "<START>"
3) Où est ton End Sub ?
4) Close est pour fermer un fichier qu'on a ouvert avant,
mais il n'y en n'a pas.
Cordialement. :)
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
Modifié par NaXiLeAn le 3/01/2017 à 09:55
Modifié par NaXiLeAn le 3/01/2017 à 09:55
Bonjour Albkan,
Bonne et heureuse année :D
Mon code fait 4 pages, c'est juste un extrait :) c'est pourquoi le End Sub n'apparait pas.
Je souhaite exporter le contenu de la colonne K (hors ligne 1 : Titre / Nombre de lignes variable de la ligne 2 à l'infini) vers un fichier texte.
La colonne K peut contenir qu'une seule donnée.
Je met le code complet qui peut être plus claire :$
Bonne et heureuse année :D
Mon code fait 4 pages, c'est juste un extrait :) c'est pourquoi le End Sub n'apparait pas.
Je souhaite exporter le contenu de la colonne K (hors ligne 1 : Titre / Nombre de lignes variable de la ligne 2 à l'infini) vers un fichier texte.
La colonne K peut contenir qu'une seule donnée.
Je met le code complet qui peut être plus claire :$
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
3 janv. 2017 à 09:52
3 janv. 2017 à 09:52
Sub Export() Dim start As Single start = Timer With Worksheets("Edit") derlig = .Range("K" & Rows.Count).End(xlUp).Row Tinfos = .Range("K2:K" & derlig).Value End With If IsArray(Tinfos) Then LTInf = UBound(Tinfos, 1) Else LTInf = 1 ' Si une seule donnée dans colonne 'LTInf = UBound(Tinfos, 1) Close Fichier = "Imprim_" & Environ("username") & "_" & Format(Date, "yyyy-mm-dd") & "_" & Format(Time, "hh-mm-ss") & ".txt" Chemin = "C:\00_Export\" SepT = "" Open Chemin & Fichier For Output As #1 Print #1, "'<START>" For N = 1 To LTInf If Tinfos(N, 1) <> "" Then For NL = 1 To 1 If NL = 1 Then Print #1, Tinfos(N, 11) '11=> colonne K End If Next NL End If Next N Print #1, "</END>" Print #1, "//" Close 1 MsgBox "Traitement Terminé! Durée : " & Timer - start & " secondes" End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
2 janv. 2017 à 19:13
2 janv. 2017 à 19:13
Bonjour,
Erreur si tu n'as qu'une cellule, essaies :
Erreur si tu n'as qu'une cellule, essaies :
If IsArray(Tinfos) Then LTInf = UBound(Tinfos, 1) Else LTInf = 1
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
3 janv. 2017 à 09:57
3 janv. 2017 à 09:57
Bonjour Patrice et merci pour ton aide.
J'ai changé le code en fonction de ton conseil et le problème se déplace avec toujours une "incompatibilité de type" sur Tinfos(N, 1)
J'ai changé le code en fonction de ton conseil et le problème se déplace avec toujours une "incompatibilité de type" sur Tinfos(N, 1)
If Tinfos(N, 1) <> "" Then
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
Modifié par gbinforme le 3/01/2017 à 10:31
Modifié par gbinforme le 3/01/2017 à 10:31
Bonjour,
Si tu n'as qu'une cellule tu ne peux pas utiliser "Tinfos" en tant que table car ce n'est qu'une variable : il te faut donc une branche spécifique.
Ceci plantera aussi car tu n'as mis qu'une colonne dans ta table et donc la colonne K est en 1 et non en 11 : tu veux l'utiliser ainsi il te faut mettre 11 colonnes dans ta table.
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Si tu n'as qu'une cellule tu ne peux pas utiliser "Tinfos" en tant que table car ce n'est qu'une variable : il te faut donc une branche spécifique.
Print #1, Tinfos(N, 11) '11=> colonne K
Ceci plantera aussi car tu n'as mis qu'une colonne dans ta table et donc la colonne K est en 1 et non en 11 : tu veux l'utiliser ainsi il te faut mettre 11 colonnes dans ta table.
Tinfos = .Range("A2:K" & derlig).Value
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
3 janv. 2017 à 10:57
3 janv. 2017 à 10:57
Ce que je ne comprend pas c'est que ce code fonctionne parfaitement sur un autre fichier ou l'information est en colonne A...
Je pensais donc l'avoir compris :(
Est-ce que Tinfos me permet bien d'effectuer ma lecture ligne à ligne jusqu'à la dernière non vide?
J'ai effectué une modif et mon export fonctionne sauf dans le cas où la colonne K ne contient qu'une seule donnée (en K2)
Je pensais donc l'avoir compris :(
Est-ce que Tinfos me permet bien d'effectuer ma lecture ligne à ligne jusqu'à la dernière non vide?
J'ai effectué une modif et mon export fonctionne sauf dans le cas où la colonne K ne contient qu'une seule donnée (en K2)
Sub Export() Dim start As Single start = Timer With Worksheets("Edit") derlig = .Range("K" & Rows.Count).End(xlUp).Row Tinfos = .Range("K2:K" & derlig).Value End With 'If IsArray(Tinfos) Then LTInf = UBound(Tinfos, 1) Else LTInf = 1 ' Si une seule donnée dans colonne LTInf = UBound(Tinfos) Close Fichier = "Imprim_" & Environ("username") & "_" & Format(Date, "yyyy-mm-dd") & "_" & Format(Time, "hh-mm-ss") & ".txt" Chemin = "C:\00_Export\" SepT = "" Open Chemin & Fichier For Output As #1 Print #1, "'<START>" For N = 1 To LTInf If Tinfos(N, 1) <> "" Then For NL = 1 To 1 If NL = 1 Then Print #1, Tinfos(N, 1) '=> colonne 1 de la plage défini par Tinfos (k2;k) End If Next NL End If Next N Print #1, "</END>" Print #1, "//" Close 1 MsgBox "Traitement Terminé! Durée : " & Timer - start & " secondes" End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
3 janv. 2017 à 11:19
3 janv. 2017 à 11:19
MERCI A TOUS
3 janv. 2017 à 07:38
Tinfos n'a bien qu'une seule colonne.
Modifié par NaXiLeAn le 3/01/2017 à 09:37
Effectivement pour faire mes tests ma colonne K n'a qu'une seule données. Ce qui , cependant, peut arriver.
3 janv. 2017 à 09:53
effectivement la colonne K n'a qu'une donnée dans mon test, mais cela peut arriver.
1 à l'infini à compter de la ligne 2.
J'ai mis mon code complet dans la conversation. Merci pour ton aide.
3 janv. 2017 à 09:54
Merci pour ton aide.
3 janv. 2017 à 10:21
et pas