Bonjour,
Je dév actuellement une petite appli où je dois piloter Excel.
Un point me pose de gros soucis.
Je dois imprimer des étiquettes via la conjugaison de "Ctrl + E".
Je remplis les champs du claseur Excel avec un dataGridView.
Tout va bien si j'imprime une seule fois (même si il y a plusieurs étiquettes).
Dès que je veux lancer plusieurs fois l'impression, j'ai une erreur :
"L'Exception COMException n'a pas été gérée"
"L'appel a été rejeté par l'appelé. (Exception de HRESULT : 0x80010001 (RPC_E_CALL_REJECTED))"
Voici la boucle avec laquelle j'envoie les impressions :
Merci de m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 //on imprime les étiquettes jusqu'à la fin de dataGridView1 while (index < dataGridView1.RowCount - 1) { //on limite longueur de chaîne recette Char[] chaine = new Char[10]; chaine = dataGridView1.Rows[index].Cells[Recette.Name].Value.ToString().ToCharArray(); //on remplit les champs xlAppETIQ.Cells[2, 1] = "UMO"; xlAppETIQ.Cells[2, 2] = chaine[0].ToString() + chaine[1].ToString() + chaine[2].ToString() + chaine[3].ToString(); xlAppETIQ.Cells[2, 3] = chaine[4].ToString(); xlAppETIQ.Cells[2, 4] = "GR" + dataGridView1.Rows[index].Cells[Groupe.Name].Value; xlAppETIQ.Cells[2, 5] = "UMO"; xlAppETIQ.Cells[2, 6] = jour + "/" + mois + "/" + annee; xlAppETIQ.Cells[2, 7] = dataGridView1.Rows[index].Cells[NbCont.Name].Value; xlAppETIQ.Cells[2, 9] = dataGridView1.Rows[index].Cells[NbBU.Name].Value; //on imprime (Ctrl + E) SendKeys.Send ("^e"); //on passe à la ligne suivante du dataGridView index++; }
Edit (précisions) :
* Si mon dataGridView ne contient qu'une seule ligne, tout se passe bien car il n'y a qu'une édition à envoyer.
* A partir de 2 cela ne va plus.
* A chaque fois je dois remplir les mêmes champs dans l'appli Excel. C'est pour cela que les cellules ne changent pas.
Partager