Bonjour,
je débute en programmation VBA avec Excel. Ma question va parraitre un peu bête, mais pourriez-vous me donner un exemple pour creer une userform qui demande la date de commande en proposant la date du jour. C'est pour automatiser un bon de commande.
Merci de votre aide et désolé si je parrais un peu néofite.
Mais non, juste un tout petit peu têtu ;o) Bon...Adieu end(3) En plus end(xlup) est plus lisible comme le dit aussi Mr Kowz Dommage, j'aimais bien ;o)
Quand on appelle Excel par DDE ou Automation depuis une autre application, Word ou Access par exemple, les constantes Excel comme xlUp, ne sont pas reconnues, alors il faut les déclarer explicitement :
Dim xlUp As Integer '(ou déclaration Const si c'est reconnu) xlUp = 3
Set xlApp = New Excel.Application Set xlDoc = xlApp.Workbooks.Open(chemin) Set xlFeuil = xlDoc.Worksheets(1)
LigneFin = xlFeuil.Columns(1).Cells.Count
xlFeuil.Cells(LigneFin, 1).End(xlUp) = Now()
Il vaut mieux le faire comme ça plutôt qu'avec la valeur en dur dans le code, comme End(3). C'est plus lisible, et si jamais il s'avère que la valeur numérique n'est pas celle prévue, c'est plus facile à change r. D'ailleurs il est préférable de déclarer les constantes en tête d e code, pour la même raison.
Si c'est dans Excel, a priori il n'y a pas besoin de déclarer la constante, elle est déjà reconnue.
Bonjour,
Jacky a écrit, le 15/09/2011 17:11 :
Si tu es sceptique...
Mais non, juste un tout petit peu têtu ;o)
Bon...Adieu end(3)
En plus end(xlup) est plus lisible comme le dit aussi Mr Kowz
Dommage, j'aimais bien ;o)
Quand on appelle Excel par DDE ou Automation depuis une autre
application, Word ou Access par exemple, les constantes Excel comme
xlUp, ne sont pas reconnues, alors il faut les déclarer explicitement :
Dim xlUp As Integer '(ou déclaration Const si c'est reconnu)
xlUp = 3
Set xlApp = New Excel.Application
Set xlDoc = xlApp.Workbooks.Open(chemin)
Set xlFeuil = xlDoc.Worksheets(1)
LigneFin = xlFeuil.Columns(1).Cells.Count
xlFeuil.Cells(LigneFin, 1).End(xlUp) = Now()
Il vaut mieux le faire comme ça plutôt qu'avec la valeur en dur dans le
code, comme End(3). C'est plus lisible, et si jamais il s'avère que la
valeur numérique n'est pas celle prévue, c'est plus facile à change r.
D'ailleurs il est préférable de déclarer les constantes en tête d e code,
pour la même raison.
Si c'est dans Excel, a priori il n'y a pas besoin de déclarer la
constante, elle est déjà reconnue.
Mais non, juste un tout petit peu têtu ;o) Bon...Adieu end(3) En plus end(xlup) est plus lisible comme le dit aussi Mr Kowz Dommage, j'aimais bien ;o)
Quand on appelle Excel par DDE ou Automation depuis une autre application, Word ou Access par exemple, les constantes Excel comme xlUp, ne sont pas reconnues, alors il faut les déclarer explicitement :
Dim xlUp As Integer '(ou déclaration Const si c'est reconnu) xlUp = 3
Set xlApp = New Excel.Application Set xlDoc = xlApp.Workbooks.Open(chemin) Set xlFeuil = xlDoc.Worksheets(1)
LigneFin = xlFeuil.Columns(1).Cells.Count
xlFeuil.Cells(LigneFin, 1).End(xlUp) = Now()
Il vaut mieux le faire comme ça plutôt qu'avec la valeur en dur dans le code, comme End(3). C'est plus lisible, et si jamais il s'avère que la valeur numérique n'est pas celle prévue, c'est plus facile à change r. D'ailleurs il est préférable de déclarer les constantes en tête d e code, pour la même raison.
Si c'est dans Excel, a priori il n'y a pas besoin de déclarer la constante, elle est déjà reconnue.
MichD
je n'avais pas vu ceci :
| Quand on appelle Excel par DDE ou Automation depuis une autre | application, Word ou Access par exemple, les constantes Excel comme | xlUp, ne sont pas reconnues, alors il faut les déclarer explicitement :
Pour avoir accès aux constantes texte par exemple de l'application "Word" lorsqu'on est dans Excel, il faut ajouter la référence "Microsoft Word xx Objects Library" au projetVBA du classeur et déclarer la variable "Word" comme ceci
'------------------------------ Dim Wd As Word.Application et dans la procédure, pour créer l'instance, Set Wd = CreateObject("Word.Application") '------------------------------
Ou on peut utiliser seulement cette syntaxe :
'------------------------------ Set Wd = New Word.Application '------------------------------
Je préfère la première approche
MichD ------------------------------------------
je n'avais pas vu ceci :
| Quand on appelle Excel par DDE ou Automation depuis une autre
| application, Word ou Access par exemple, les constantes Excel comme
| xlUp, ne sont pas reconnues, alors il faut les déclarer explicitement :
Pour avoir accès aux constantes texte par exemple de l'application "Word" lorsqu'on
est dans Excel, il faut ajouter la référence "Microsoft Word xx Objects Library"
au projetVBA du classeur et déclarer la variable "Word" comme ceci
'------------------------------
Dim Wd As Word.Application
et dans la procédure, pour créer l'instance,
Set Wd = CreateObject("Word.Application")
'------------------------------
Ou on peut utiliser seulement cette syntaxe :
'------------------------------
Set Wd = New Word.Application
'------------------------------
| Quand on appelle Excel par DDE ou Automation depuis une autre | application, Word ou Access par exemple, les constantes Excel comme | xlUp, ne sont pas reconnues, alors il faut les déclarer explicitement :
Pour avoir accès aux constantes texte par exemple de l'application "Word" lorsqu'on est dans Excel, il faut ajouter la référence "Microsoft Word xx Objects Library" au projetVBA du classeur et déclarer la variable "Word" comme ceci
'------------------------------ Dim Wd As Word.Application et dans la procédure, pour créer l'instance, Set Wd = CreateObject("Word.Application") '------------------------------
Ou on peut utiliser seulement cette syntaxe :
'------------------------------ Set Wd = New Word.Application '------------------------------
Je préfère la première approche
MichD ------------------------------------------
Gloops
MichD a écrit, le 19/09/2011 19:43 :
je n'avais pas vu ceci :
| Quand on appelle Excel par DDE ou Automation depuis une autre | application, Word ou Access par exemple, les constantes Excel comme | xlUp, ne sont pas reconnues, alors il faut les déclarer expliciteme nt :
Pour avoir accès aux constantes texte par exemple de l'application "W ord" lorsqu'on est dans Excel, il faut ajouter la référence "Microsoft Word xx Obj ects Library" au projetVBA du classeur et déclarer la variable "Word" comme ceci
'------------------------------ Dim Wd As Word.Application et dans la procédure, pour créer l'instance, Set Wd = CreateObject("Word.Application") '------------------------------
Ou on peut utiliser seulement cette syntaxe :
'------------------------------ Set Wd = New Word.Application '------------------------------
Je préfère la première approche
MichD ------------------------------------------
Ah, oui, j'ai bien mis la référence pour pouvoir faire la déclarati on précoce, mais j'avoue que j'ai omis de tester les constantes. J'ai constaté que je devais les déclarer à une époque où je n'étai s guère très rigoureux dans la sélection des références, et où j'utilis ais plus souvent, par la force des choses, la déclaration tardive.
Cela étant, je pense qu'on peut être d'accord pour utiliser plutôt les noms de constantes, en vérifiant qu'ils sont bien reconnus, et si jamai s ce n'est pas le cas les déclarer explicitement.
D'ailleurs, ça fait partie des règles à respecter pour qu'une application puisse (relativement) aisément être migrée vers .Net.
MichD a écrit, le 19/09/2011 19:43 :
je n'avais pas vu ceci :
| Quand on appelle Excel par DDE ou Automation depuis une autre
| application, Word ou Access par exemple, les constantes Excel comme
| xlUp, ne sont pas reconnues, alors il faut les déclarer expliciteme nt :
Pour avoir accès aux constantes texte par exemple de l'application "W ord" lorsqu'on
est dans Excel, il faut ajouter la référence "Microsoft Word xx Obj ects Library"
au projetVBA du classeur et déclarer la variable "Word" comme ceci
'------------------------------
Dim Wd As Word.Application
et dans la procédure, pour créer l'instance,
Set Wd = CreateObject("Word.Application")
'------------------------------
Ou on peut utiliser seulement cette syntaxe :
'------------------------------
Set Wd = New Word.Application
'------------------------------
Je préfère la première approche
MichD
------------------------------------------
Ah, oui, j'ai bien mis la référence pour pouvoir faire la déclarati on
précoce, mais j'avoue que j'ai omis de tester les constantes. J'ai
constaté que je devais les déclarer à une époque où je n'étai s guère
très rigoureux dans la sélection des références, et où j'utilis ais plus
souvent, par la force des choses, la déclaration tardive.
Cela étant, je pense qu'on peut être d'accord pour utiliser plutôt les
noms de constantes, en vérifiant qu'ils sont bien reconnus, et si jamai s
ce n'est pas le cas les déclarer explicitement.
D'ailleurs, ça fait partie des règles à respecter pour qu'une
application puisse (relativement) aisément être migrée vers .Net.
| Quand on appelle Excel par DDE ou Automation depuis une autre | application, Word ou Access par exemple, les constantes Excel comme | xlUp, ne sont pas reconnues, alors il faut les déclarer expliciteme nt :
Pour avoir accès aux constantes texte par exemple de l'application "W ord" lorsqu'on est dans Excel, il faut ajouter la référence "Microsoft Word xx Obj ects Library" au projetVBA du classeur et déclarer la variable "Word" comme ceci
'------------------------------ Dim Wd As Word.Application et dans la procédure, pour créer l'instance, Set Wd = CreateObject("Word.Application") '------------------------------
Ou on peut utiliser seulement cette syntaxe :
'------------------------------ Set Wd = New Word.Application '------------------------------
Je préfère la première approche
MichD ------------------------------------------
Ah, oui, j'ai bien mis la référence pour pouvoir faire la déclarati on précoce, mais j'avoue que j'ai omis de tester les constantes. J'ai constaté que je devais les déclarer à une époque où je n'étai s guère très rigoureux dans la sélection des références, et où j'utilis ais plus souvent, par la force des choses, la déclaration tardive.
Cela étant, je pense qu'on peut être d'accord pour utiliser plutôt les noms de constantes, en vérifiant qu'ils sont bien reconnus, et si jamai s ce n'est pas le cas les déclarer explicitement.
D'ailleurs, ça fait partie des règles à respecter pour qu'une application puisse (relativement) aisément être migrée vers .Net.