Bonjours tout le monde
J'importe dans un fichier excel des données d'une base ORACLE grace au code
que m'a fourni récemment JB lors de mon dernier post
Si cet import se passe sans difficulté il n'en est pas de même pour les
traitements qui suivent
Code de l'import :
Sheets("Onglet").Select
Range("A2", [A2].End(xlDown).Offset(0, 1)).Select
Selection.Clear
sqlChaine = "Champ1, Champ2 from Table_Oracle"
ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base"
ActiveSheet.QueryTables.Add(Connection:=ChaineConn,
Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant
une donnée quelque soit la colonne
Une commande du style :
Range("A1").End(xlDown).select
Me positionne la cellule active en A65535
De même la commande :
Range("A1").Offset(65535,0).End(xlup).select
Me positionne la cellule active en A1
Seule l'instruction :
ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la
positionnant sur la dernière cellule de la plage utilisée
Si celà peux convenir pour la colonne la plus grande pour les autres
nettement plus petite c'est difficilement exploitable
Je pense qu'Excel ne reconnait pas le format des données importées et si une
conversion manuelle rétablit la situation impossible de l'intégrer dans le
code : message d'erreur "Aucune données à convertir"
En un mot : l'impasse
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160
se glisse régulièrement et comme il représente un espace similaire que
l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les)
cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
8653E1F3-1AA7-4344-A0CC-CB4891E3BE0D@microsoft.com...
Bonjours tout le monde
J'importe dans un fichier excel des données d'une base ORACLE grace au code
que m'a fourni récemment JB lors de mon dernier post
Si cet import se passe sans difficulté il n'en est pas de même pour les
traitements qui suivent
Code de l'import :
Sheets("Onglet").Select
Range("A2", [A2].End(xlDown).Offset(0, 1)).Select
Selection.Clear
sqlChaine = "Champ1, Champ2 from Table_Oracle"
ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base"
ActiveSheet.QueryTables.Add(Connection:=ChaineConn,
Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant
une donnée quelque soit la colonne
Une commande du style :
Range("A1").End(xlDown).select
Me positionne la cellule active en A65535
De même la commande :
Range("A1").Offset(65535,0).End(xlup).select
Me positionne la cellule active en A1
Seule l'instruction :
ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la
positionnant sur la dernière cellule de la plage utilisée
Si celà peux convenir pour la colonne la plus grande pour les autres
nettement plus petite c'est difficilement exploitable
Je pense qu'Excel ne reconnait pas le format des données importées et si une
conversion manuelle rétablit la situation impossible de l'intégrer dans le
code : message d'erreur "Aucune données à convertir"
En un mot : l'impasse
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
FFO
tout d'abord merci pour ton aide Les colonnes à l'oeil nu fourmillent de données qu'appelles tu le code 160 Si même il est présent qu'en est il des autres données elles aussi visiblement présentes Excel ne les voient pas ??? Qu'elle est ma porte de sortie pour rendre exploitable ces données Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
tout d'abord merci pour ton aide
Les colonnes à l'oeil nu fourmillent de données
qu'appelles tu le code 160
Si même il est présent qu'en est il des autres données elles aussi
visiblement présentes
Excel ne les voient pas ???
Qu'elle est ma porte de sortie pour rendre exploitable ces données
Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160
se glisse régulièrement et comme il représente un espace similaire que
l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les)
cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
8653E1F3-1AA7-4344-A0CC-CB4891E3BE0D@microsoft.com...
Bonjours tout le monde
J'importe dans un fichier excel des données d'une base ORACLE grace au code
que m'a fourni récemment JB lors de mon dernier post
Si cet import se passe sans difficulté il n'en est pas de même pour les
traitements qui suivent
Code de l'import :
Sheets("Onglet").Select
Range("A2", [A2].End(xlDown).Offset(0, 1)).Select
Selection.Clear
sqlChaine = "Champ1, Champ2 from Table_Oracle"
ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base"
ActiveSheet.QueryTables.Add(Connection:=ChaineConn,
Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant
une donnée quelque soit la colonne
Une commande du style :
Range("A1").End(xlDown).select
Me positionne la cellule active en A65535
De même la commande :
Range("A1").Offset(65535,0).End(xlup).select
Me positionne la cellule active en A1
Seule l'instruction :
ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la
positionnant sur la dernière cellule de la plage utilisée
Si celà peux convenir pour la colonne la plus grande pour les autres
nettement plus petite c'est difficilement exploitable
Je pense qu'Excel ne reconnait pas le format des données importées et si une
conversion manuelle rétablit la situation impossible de l'intégrer dans le
code : message d'erreur "Aucune données à convertir"
En un mot : l'impasse
tout d'abord merci pour ton aide Les colonnes à l'oeil nu fourmillent de données qu'appelles tu le code 160 Si même il est présent qu'en est il des autres données elles aussi visiblement présentes Excel ne les voient pas ??? Qu'elle est ma porte de sortie pour rendre exploitable ces données Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
MichDenis
| le code 160 *** C'est la valeur Ascii du caractère "espace"
| Range("A1").Offset(65535,0).End(xlup).select *** Si ta colonne est réellement pleine de données, ce que tu observes est normale...il faudrait savoir qu'elle est la nature de ton vrai problème !
"FFO" a écrit dans le message de news:
tout d'abord merci pour ton aide Les colonnes à l'oeil nu fourmillent de données qu'appelles tu le code 160 Si même il est présent qu'en est il des autres données elles aussi visiblement présentes Excel ne les voient pas ??? Qu'elle est ma porte de sortie pour rendre exploitable ces données Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
| le code 160
*** C'est la valeur Ascii du caractère "espace"
| Range("A1").Offset(65535,0).End(xlup).select
*** Si ta colonne est réellement pleine de données,
ce que tu observes est normale...il faudrait savoir
qu'elle est la nature de ton vrai problème !
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
BD59B367-F155-4D4C-91DB-5A28858081FE@microsoft.com...
tout d'abord merci pour ton aide
Les colonnes à l'oeil nu fourmillent de données
qu'appelles tu le code 160
Si même il est présent qu'en est il des autres données elles aussi
visiblement présentes
Excel ne les voient pas ???
Qu'elle est ma porte de sortie pour rendre exploitable ces données
Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160
se glisse régulièrement et comme il représente un espace similaire que
l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les)
cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
8653E1F3-1AA7-4344-A0CC-CB4891E3BE0D@microsoft.com...
Bonjours tout le monde
J'importe dans un fichier excel des données d'une base ORACLE grace au code
que m'a fourni récemment JB lors de mon dernier post
Si cet import se passe sans difficulté il n'en est pas de même pour les
traitements qui suivent
Code de l'import :
Sheets("Onglet").Select
Range("A2", [A2].End(xlDown).Offset(0, 1)).Select
Selection.Clear
sqlChaine = "Champ1, Champ2 from Table_Oracle"
ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base"
ActiveSheet.QueryTables.Add(Connection:=ChaineConn,
Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant
une donnée quelque soit la colonne
Une commande du style :
Range("A1").End(xlDown).select
Me positionne la cellule active en A65535
De même la commande :
Range("A1").Offset(65535,0).End(xlup).select
Me positionne la cellule active en A1
Seule l'instruction :
ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la
positionnant sur la dernière cellule de la plage utilisée
Si celà peux convenir pour la colonne la plus grande pour les autres
nettement plus petite c'est difficilement exploitable
Je pense qu'Excel ne reconnait pas le format des données importées et si une
conversion manuelle rétablit la situation impossible de l'intégrer dans le
code : message d'erreur "Aucune données à convertir"
En un mot : l'impasse
| le code 160 *** C'est la valeur Ascii du caractère "espace"
| Range("A1").Offset(65535,0).End(xlup).select *** Si ta colonne est réellement pleine de données, ce que tu observes est normale...il faudrait savoir qu'elle est la nature de ton vrai problème !
"FFO" a écrit dans le message de news:
tout d'abord merci pour ton aide Les colonnes à l'oeil nu fourmillent de données qu'appelles tu le code 160 Si même il est présent qu'en est il des autres données elles aussi visiblement présentes Excel ne les voient pas ??? Qu'elle est ma porte de sortie pour rendre exploitable ces données Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
FFO
j'ai finalement détecté l'origine de mon anomalie Le traitement immédiatement aprés l'import des données ORACLE tel que décrit dans mon premier message doit en VBA se réaliser trop rapidement les données n'étant pas effictivement en place (rapidité d'execution) L'utilisation d'une tempo avec exécution d'une 2° macro avec la suite du code correspondant au traitement de sélection résoud ma problématique : Sub Importation_Oracle() Code Application.OnTime Now + TimeValue("00:00:01"), "Traitement" End Sub Sub Traitement() Code End Sub Tout fonctionne
Merci pour ton aide
| le code 160 *** C'est la valeur Ascii du caractère "espace"
| Range("A1").Offset(65535,0).End(xlup).select *** Si ta colonne est réellement pleine de données, ce que tu observes est normale...il faudrait savoir qu'elle est la nature de ton vrai problème !
"FFO" a écrit dans le message de news:
tout d'abord merci pour ton aide Les colonnes à l'oeil nu fourmillent de données qu'appelles tu le code 160 Si même il est présent qu'en est il des autres données elles aussi visiblement présentes Excel ne les voient pas ??? Qu'elle est ma porte de sortie pour rendre exploitable ces données Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse
Auriez vous des solutions
Merci d'avance pour votre aide généreuse
j'ai finalement détecté l'origine de mon anomalie
Le traitement immédiatement aprés l'import des données ORACLE tel que décrit
dans mon premier message doit en VBA se réaliser trop rapidement les données
n'étant pas effictivement en place (rapidité d'execution)
L'utilisation d'une tempo avec exécution d'une 2° macro avec la suite du
code correspondant au traitement de sélection résoud ma problématique :
Sub Importation_Oracle()
Code
Application.OnTime Now + TimeValue("00:00:01"), "Traitement"
End Sub
Sub Traitement()
Code
End Sub
Tout fonctionne
Merci pour ton aide
| le code 160
*** C'est la valeur Ascii du caractère "espace"
| Range("A1").Offset(65535,0).End(xlup).select
*** Si ta colonne est réellement pleine de données,
ce que tu observes est normale...il faudrait savoir
qu'elle est la nature de ton vrai problème !
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
BD59B367-F155-4D4C-91DB-5A28858081FE@microsoft.com...
tout d'abord merci pour ton aide
Les colonnes à l'oeil nu fourmillent de données
qu'appelles tu le code 160
Si même il est présent qu'en est il des autres données elles aussi
visiblement présentes
Excel ne les voient pas ???
Qu'elle est ma porte de sortie pour rendre exploitable ces données
Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160
se glisse régulièrement et comme il représente un espace similaire que
l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les)
cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
8653E1F3-1AA7-4344-A0CC-CB4891E3BE0D@microsoft.com...
Bonjours tout le monde
J'importe dans un fichier excel des données d'une base ORACLE grace au code
que m'a fourni récemment JB lors de mon dernier post
Si cet import se passe sans difficulté il n'en est pas de même pour les
traitements qui suivent
Code de l'import :
Sheets("Onglet").Select
Range("A2", [A2].End(xlDown).Offset(0, 1)).Select
Selection.Clear
sqlChaine = "Champ1, Champ2 from Table_Oracle"
ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base"
ActiveSheet.QueryTables.Add(Connection:=ChaineConn,
Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant
une donnée quelque soit la colonne
Une commande du style :
Range("A1").End(xlDown).select
Me positionne la cellule active en A65535
De même la commande :
Range("A1").Offset(65535,0).End(xlup).select
Me positionne la cellule active en A1
Seule l'instruction :
ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la
positionnant sur la dernière cellule de la plage utilisée
Si celà peux convenir pour la colonne la plus grande pour les autres
nettement plus petite c'est difficilement exploitable
Je pense qu'Excel ne reconnait pas le format des données importées et si une
conversion manuelle rétablit la situation impossible de l'intégrer dans le
code : message d'erreur "Aucune données à convertir"
En un mot : l'impasse
j'ai finalement détecté l'origine de mon anomalie Le traitement immédiatement aprés l'import des données ORACLE tel que décrit dans mon premier message doit en VBA se réaliser trop rapidement les données n'étant pas effictivement en place (rapidité d'execution) L'utilisation d'une tempo avec exécution d'une 2° macro avec la suite du code correspondant au traitement de sélection résoud ma problématique : Sub Importation_Oracle() Code Application.OnTime Now + TimeValue("00:00:01"), "Traitement" End Sub Sub Traitement() Code End Sub Tout fonctionne
Merci pour ton aide
| le code 160 *** C'est la valeur Ascii du caractère "espace"
| Range("A1").Offset(65535,0).End(xlup).select *** Si ta colonne est réellement pleine de données, ce que tu observes est normale...il faudrait savoir qu'elle est la nature de ton vrai problème !
"FFO" a écrit dans le message de news:
tout d'abord merci pour ton aide Les colonnes à l'oeil nu fourmillent de données qu'appelles tu le code 160 Si même il est présent qu'en est il des autres données elles aussi visiblement présentes Excel ne les voient pas ??? Qu'elle est ma porte de sortie pour rendre exploitable ces données Merci pour tes suggestions
Afin de déterminer si il existe vraiment un caractère dans les cellules apparemment vide
=Code(a65535) -> qu'obtiens-tu ? Lors d'importation, le code 160 se glisse régulièrement et comme il représente un espace similaire que l'on fait avec la barre d'espacement... il n'est pas visible à l'oeil mais la (les) cellule n'est pas vide pour autant d'où le comportement que tu observes.
"FFO" a écrit dans le message de news:
Bonjours tout le monde J'importe dans un fichier excel des données d'une base ORACLE grace au code que m'a fourni récemment JB lors de mon dernier post Si cet import se passe sans difficulté il n'en est pas de même pour les traitements qui suivent Code de l'import : Sheets("Onglet").Select Range("A2", [A2].End(xlDown).Offset(0, 1)).Select Selection.Clear sqlChaine = "Champ1, Champ2 from Table_Oracle" ChaineConn = "ODBC;DSN=Nom Base;UID=User;PWD=Pasword;Database=Nom Base" ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A2"), Sql:=sqlChaine).Refresh
Aprés cette première phase pas moyen de déterminer la dernière cellule ayant une donnée quelque soit la colonne Une commande du style : Range("A1").End(xlDown).select Me positionne la cellule active en A65535 De même la commande : Range("A1").Offset(65535,0).End(xlup).select Me positionne la cellule active en A1 Seule l'instruction : ActiveCell.SpecialCells(xlCellTypeLastCell).Select me limite la casse en la positionnant sur la dernière cellule de la plage utilisée Si celà peux convenir pour la colonne la plus grande pour les autres nettement plus petite c'est difficilement exploitable Je pense qu'Excel ne reconnait pas le format des données importées et si une conversion manuelle rétablit la situation impossible de l'intégrer dans le code : message d'erreur "Aucune données à convertir" En un mot : l'impasse