il y a quelques temps, avec votre aide, j'ai cr=E9=E9e cette macro qui va
chercher un fichier de donn=E9es, fait la fusion en triant sur 2
crit=E8res, imprime et referme le doc. Mon souci, c'est quand la source
de donn=E9es ne comporte qu'un enregistrement, la macro s'arr=EAte car
SQL ne sait pas trier un seul enregistrement. Mon id=E9e est de demander
un comptage avant le tri : si =3D1 pas de tri, si>1 alors tri.
Si qqun a des id=E9es, elles sont les bienvenues.
Cordialement
Guillaume
Private Sub Document_Open()
Dim doc As String
ActivePrinter =3D "Lexmark C750 Recto Verso on impa14327"
With ActiveDocument.PageSetup
.FirstPageTray =3D wdPrinterUpperBin
.OtherPagesTray =3D wdPrinterUpperBin
End With
With ActiveDocument.MailMerge
.OpenDataSource Name:=3D"\\*******\\9ap01cl1.001", SQLStatement:=3D"SELECT
* FROM `9ap01cl1.001`" & "ORDER BY idscr, idpos"
.Destination =3D wdSendToPrinter
.Execute
End With
Windows(1).Activate
ActiveDocument.Save
ActiveWindow.Close
ActiveWindow.Close
End Sub
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
Anacoluthe
Bonjour !
'' nous a écrit ...
il y a quelques temps, avec votre aide, j'ai créée cette macro qui va chercher un fichier de données, fait la fusion en triant sur 2 critères, imprime et referme le doc. Mon souci, c'est quand la source de données ne comporte qu'un enregistrement, la macro s'arrête car SQL ne sait pas trier un seul enregistrement. Mon idée est de demander un comptage avant le tri : si =1 pas de tri, si>1 alors tri. Si qqun a des idées, elles sont les bienvenues.
- Ouvrez votre source sans le tri - testez si .DataSource.RecordCount est supérieur à 1 - Si oui changez la requête .DataSource.QueryString avec le tri
en reprenant votre code ça donnerait qqch comme : With ActiveDocument.MailMerge .OpenDataSource Name:="*******9ap01cl1.001", SQLStatement:="SELECT * FROM `9ap01cl1.001`" If .DataSource.RecordCount > 1 Then .Datasource.QueryString = .DataSource.QueryString & " ORDER BY idscr, idpos" End If .Destination = wdSendToPrinter .Execute
ça colle ?
Anacoluthe « Le temps est comme un fleuve, il ne remonte pas à sa source. » - RIVAROL
Bonjour !
'guimou2001@gmail.com' nous a écrit ...
il y a quelques temps, avec votre aide, j'ai créée cette macro qui va
chercher un fichier de données, fait la fusion en triant sur 2
critères, imprime et referme le doc. Mon souci, c'est quand la source
de données ne comporte qu'un enregistrement, la macro s'arrête car
SQL ne sait pas trier un seul enregistrement. Mon idée est de demander
un comptage avant le tri : si =1 pas de tri, si>1 alors tri.
Si qqun a des idées, elles sont les bienvenues.
- Ouvrez votre source sans le tri
- testez si .DataSource.RecordCount est supérieur à 1
- Si oui changez la requête .DataSource.QueryString avec le tri
en reprenant votre code ça donnerait qqch comme :
With ActiveDocument.MailMerge
.OpenDataSource Name:="\*******\9ap01cl1.001", SQLStatement:="SELECT
* FROM `9ap01cl1.001`"
If .DataSource.RecordCount > 1 Then
.Datasource.QueryString = .DataSource.QueryString & " ORDER BY
idscr, idpos"
End If
.Destination = wdSendToPrinter
.Execute
ça colle ?
Anacoluthe
« Le temps est comme un fleuve, il ne remonte pas à sa source. »
- RIVAROL
il y a quelques temps, avec votre aide, j'ai créée cette macro qui va chercher un fichier de données, fait la fusion en triant sur 2 critères, imprime et referme le doc. Mon souci, c'est quand la source de données ne comporte qu'un enregistrement, la macro s'arrête car SQL ne sait pas trier un seul enregistrement. Mon idée est de demander un comptage avant le tri : si =1 pas de tri, si>1 alors tri. Si qqun a des idées, elles sont les bienvenues.
- Ouvrez votre source sans le tri - testez si .DataSource.RecordCount est supérieur à 1 - Si oui changez la requête .DataSource.QueryString avec le tri
en reprenant votre code ça donnerait qqch comme : With ActiveDocument.MailMerge .OpenDataSource Name:="*******9ap01cl1.001", SQLStatement:="SELECT * FROM `9ap01cl1.001`" If .DataSource.RecordCount > 1 Then .Datasource.QueryString = .DataSource.QueryString & " ORDER BY idscr, idpos" End If .Destination = wdSendToPrinter .Execute
ça colle ?
Anacoluthe « Le temps est comme un fleuve, il ne remonte pas à sa source. » - RIVAROL
guimou2001
Bonjour !
'' nous a écrit ...
il y a quelques temps, avec votre aide, j'ai créée cette macro qui va chercher un fichier de données, fait la fusion en triant sur 2 critères, imprime et referme le doc. Mon souci, c'est quand la source de données ne comporte qu'un enregistrement, la macro s'arrête car SQL ne sait pas trier un seul enregistrement. Mon idée est de demander un comptage avant le tri : si =1 pas de tri, si>1 alors tri. Si qqun a des idées, elles sont les bienvenues.
- Ouvrez votre source sans le tri - testez si .DataSource.RecordCount est supérieur à 1 - Si oui changez la requête .DataSource.QueryString avec le tri
en reprenant votre code ça donnerait qqch comme : With ActiveDocument.MailMerge .OpenDataSource Name:="*******9ap01cl1.001", SQLStatement:="SELECT * FROM `9ap01cl1.001`" If .DataSource.RecordCount > 1 Then .Datasource.QueryString = .DataSource.QueryString & " ORDER BY idscr, idpos" End If .Destination = wdSendToPrinter .Execute
ça colle ?
Anacoluthe « Le temps est comme un fleuve, il ne remonte pas à sa source. » - RIVAROL
merci de ton aide . çà aurait pu coller ...mais non la macro fonctionne si je n 'ai qu'un enregistrement mais çà ne trie plus si j'en ai plusieurs...
Private Sub Document_Open() Dim doc As String
ActivePrinter = "Lexmark C750 Recto Verso on impa14327" With ActiveDocument.PageSetup .FirstPageTray = wdPrinterUpperBin .OtherPagesTray = wdPrinterUpperBin End With With ActiveDocument.MailMerge .OpenDataSource Name:="*****9ap03cl2.001" If .DataSource.RecordCount > 1 Then .DataSource.QueryString = .DataSource.QueryString & " ORDER BY idscr, idpos" End If .Destination = wdSendToPrinter .Execute End With Windows(1).Activate ActiveDocument.Save ActiveWindow.Close ActiveWindow.Close End Sub
c'est dommage, j'y ai cru de toutes mes forces pourtant :)
Bonjour !
'guimou2001@gmail.com' nous a écrit ...
il y a quelques temps, avec votre aide, j'ai créée cette macro qui va
chercher un fichier de données, fait la fusion en triant sur 2
critères, imprime et referme le doc. Mon souci, c'est quand la source
de données ne comporte qu'un enregistrement, la macro s'arrête car
SQL ne sait pas trier un seul enregistrement. Mon idée est de demander
un comptage avant le tri : si =1 pas de tri, si>1 alors tri.
Si qqun a des idées, elles sont les bienvenues.
- Ouvrez votre source sans le tri
- testez si .DataSource.RecordCount est supérieur à 1
- Si oui changez la requête .DataSource.QueryString avec le tri
en reprenant votre code ça donnerait qqch comme :
With ActiveDocument.MailMerge
.OpenDataSource Name:="\*******\9ap01cl1.001", SQLStatement:="SELECT
* FROM `9ap01cl1.001`"
If .DataSource.RecordCount > 1 Then
.Datasource.QueryString = .DataSource.QueryString & " ORDER BY
idscr, idpos"
End If
.Destination = wdSendToPrinter
.Execute
ça colle ?
Anacoluthe
« Le temps est comme un fleuve, il ne remonte pas à sa source. »
- RIVAROL
merci de ton aide .
çà aurait pu coller ...mais non
la macro fonctionne si je n 'ai qu'un enregistrement mais çà ne trie
plus si j'en ai plusieurs...
Private Sub Document_Open()
Dim doc As String
ActivePrinter = "Lexmark C750 Recto Verso on impa14327"
With ActiveDocument.PageSetup
.FirstPageTray = wdPrinterUpperBin
.OtherPagesTray = wdPrinterUpperBin
End With
With ActiveDocument.MailMerge
.OpenDataSource Name:="\*****9ap03cl2.001"
If .DataSource.RecordCount > 1 Then
.DataSource.QueryString = .DataSource.QueryString & " ORDER BY
idscr, idpos"
End If
.Destination = wdSendToPrinter
.Execute
End With
Windows(1).Activate
ActiveDocument.Save
ActiveWindow.Close
ActiveWindow.Close
End Sub
c'est dommage, j'y ai cru de toutes mes forces pourtant :)
il y a quelques temps, avec votre aide, j'ai créée cette macro qui va chercher un fichier de données, fait la fusion en triant sur 2 critères, imprime et referme le doc. Mon souci, c'est quand la source de données ne comporte qu'un enregistrement, la macro s'arrête car SQL ne sait pas trier un seul enregistrement. Mon idée est de demander un comptage avant le tri : si =1 pas de tri, si>1 alors tri. Si qqun a des idées, elles sont les bienvenues.
- Ouvrez votre source sans le tri - testez si .DataSource.RecordCount est supérieur à 1 - Si oui changez la requête .DataSource.QueryString avec le tri
en reprenant votre code ça donnerait qqch comme : With ActiveDocument.MailMerge .OpenDataSource Name:="*******9ap01cl1.001", SQLStatement:="SELECT * FROM `9ap01cl1.001`" If .DataSource.RecordCount > 1 Then .Datasource.QueryString = .DataSource.QueryString & " ORDER BY idscr, idpos" End If .Destination = wdSendToPrinter .Execute
ça colle ?
Anacoluthe « Le temps est comme un fleuve, il ne remonte pas à sa source. » - RIVAROL
merci de ton aide . çà aurait pu coller ...mais non la macro fonctionne si je n 'ai qu'un enregistrement mais çà ne trie plus si j'en ai plusieurs...
Private Sub Document_Open() Dim doc As String
ActivePrinter = "Lexmark C750 Recto Verso on impa14327" With ActiveDocument.PageSetup .FirstPageTray = wdPrinterUpperBin .OtherPagesTray = wdPrinterUpperBin End With With ActiveDocument.MailMerge .OpenDataSource Name:="*****9ap03cl2.001" If .DataSource.RecordCount > 1 Then .DataSource.QueryString = .DataSource.QueryString & " ORDER BY idscr, idpos" End If .Destination = wdSendToPrinter .Execute End With Windows(1).Activate ActiveDocument.Save ActiveWindow.Close ActiveWindow.Close End Sub
c'est dommage, j'y ai cru de toutes mes forces pourtant :)
Anacoluthe
Bonjour !
'' nous a écrit ...
la macro fonctionne si je n 'ai qu'un enregistrement mais çà ne trie plus si j'en ai plusieurs...
Vérifiez votre mode d'accès aux données : pour certains (DDE) le tri n'est pas appliqué depuis Word correctement, le plus souvent pour des raisons de guillemets aux noms de champs.
Utilisez ODBC et modifiez l'écriture de la requête en remplaçant & " ORDER BY idscr" par & " ORDER BY " & """" & "idscr" & """"
c'est fastidieux ces requêtes à guillemets mais ça devrait marcher!
Anacoluthe « Le temps est comme un fleuve, il ne remonte pas à sa source. » - RIVAROL
Bonjour !
'guimou2001@gmail.com' nous a écrit ...
la macro fonctionne si je n 'ai qu'un enregistrement mais çà ne trie
plus si j'en ai plusieurs...
Vérifiez votre mode d'accès aux données : pour certains (DDE) le tri
n'est pas appliqué depuis Word correctement, le plus souvent
pour des raisons de guillemets aux noms de champs.
Utilisez ODBC et modifiez l'écriture de la requête en remplaçant
& " ORDER BY idscr" par
& " ORDER BY " & """" & "idscr" & """"
c'est fastidieux ces requêtes à guillemets mais ça devrait marcher!
Anacoluthe
« Le temps est comme un fleuve, il ne remonte pas à sa source. »
- RIVAROL
la macro fonctionne si je n 'ai qu'un enregistrement mais çà ne trie plus si j'en ai plusieurs...
Vérifiez votre mode d'accès aux données : pour certains (DDE) le tri n'est pas appliqué depuis Word correctement, le plus souvent pour des raisons de guillemets aux noms de champs.
Utilisez ODBC et modifiez l'écriture de la requête en remplaçant & " ORDER BY idscr" par & " ORDER BY " & """" & "idscr" & """"
c'est fastidieux ces requêtes à guillemets mais ça devrait marcher!
Anacoluthe « Le temps est comme un fleuve, il ne remonte pas à sa source. » - RIVAROL
guimou2001
salut
j'ai appliqué vos recommandations : je ne sais pas si il y a une autre méthode mais pour utilisez ODBC, j'ai coché ds options/général "confirmation des conversions lors de l'ouverture" mais çà n'a rien changé...Je n'ai pas de boite de dialogue qui s'ouvre à l'ouverture du document (ce qui apparemment devrait être le cas selon l'aide de Word) et les tris ne se font toujours pas ...
cordialement
salut
j'ai appliqué vos recommandations :
je ne sais pas si il y a une autre méthode mais pour utilisez ODBC,
j'ai coché ds options/général "confirmation des conversions lors de
l'ouverture" mais çà n'a rien changé...Je n'ai pas de boite de
dialogue qui s'ouvre à l'ouverture du document (ce qui apparemment
devrait être le cas selon l'aide de Word) et les tris ne se font
toujours pas ...
j'ai appliqué vos recommandations : je ne sais pas si il y a une autre méthode mais pour utilisez ODBC, j'ai coché ds options/général "confirmation des conversions lors de l'ouverture" mais çà n'a rien changé...Je n'ai pas de boite de dialogue qui s'ouvre à l'ouverture du document (ce qui apparemment devrait être le cas selon l'aide de Word) et les tris ne se font toujours pas ...