Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : vb .net sql et excel [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (helonear)

vendredi 23 avril 2004 à 11:58:05 | vb .net sql et excel

helonear

salut

je suis actuellement en plein developpement d'une application de gestion d'horaire

et dans cette application on me demande d'exporter ma base de donnée sql dans un fichier Excel

ne sachant pas comment faire je me tourne vers vous pour vous demander conseil


d avance merci


vendredi 23 avril 2004 à 12:10:18 | Re : vb .net sql et excel

labout


labout

Il s'agit d'une table ou de toutes les tables ou du résultat d'une requete.

Dans le cas de requete je pourrai te donner le code (Long 600 lignes)
@+

vendredi 23 avril 2004 à 13:15:14 | Re : vb .net sql et excel

crenaud76

Le plus simple est sans doute de faire un lot DTS

Christophe R.

vendredi 23 avril 2004 à 14:00:20 | Re : vb .net sql et excel

labout


labout

Je te mets le code

Ce dode permet de tranférer vers Excel le contenu d'une requête avec encadrement et totaux éventuels.
Je me suis trompé (238 lignes)

Option Strict On
Option Explicit On
Module DocExcel
' nom du fichier xls total oui ou non
Function EtatExcel(ByRef rs As ADODB.Recordset, ByRef etat As String, ByRef bBol As Boolean) As Boolean
Dim fichier As String
Dim FrmSt As New FrmStatus
Dim i As Integer
Dim j As Integer
Dim nb As Integer
Dim sCols As String
Dim iFields As Integer
Dim ExcelWasNotRunning As Boolean
Dim iLastcol As Integer

Dim excelApp As New Excel.Application
Dim excelBook As Excel.Workbook = excelApp.Workbooks.Add
Dim excelWorksheet As Excel.Worksheet = _
CType(excelBook.Worksheets(1), Excel.Worksheet)
Dim rng As Excel.Range

' Unlike the Word demo, we'll make the spreadsheet visible so you can see
' the data being entered.
excelApp.Visible = True
On Error GoTo err_Renamed
FrmSt.Show("Création de la feuille Excel en cours." & vbCrLf & "Patientez...")
iFields = rs.Fields.Count - 1
fichier = New String(Chr(0), 100)
'Get the temporary path
GetTempPath(100, fichier)
fichier = CLeft(fichier, InStr(fichier, Chr(0)) - 1)

fichier = Trim(fichier) & etat & ".XLS"
If Dir(fichier) <> "" Then
Kill(fichier)
End If

With excelApp.Application
.Workbooks.Add()
.ActiveWorkbook.SaveAs(fichier)
For i = 0 To iFields
.Cells(1, i + 1) = rs.Fields(i).Name
Next
j = 2
nb = 0
Do While Not rs.EOF
System.Windows.Forms.Application.DoEvents()
nb = nb + 1
For i = 0 To iFields
System.Windows.Forms.Application.DoEvents()
.Cells(j, i + 1) = rs.Fields(i).Value
Next
j = j + 1
rs.MoveNext()
Loop

' on autorise 104 colonnes pour le moment
For i = 1 To iFields + 1
If i <= 26 Then
sCols = Chr(64 + i) & ":" & Chr(64 + i)
Else ' 64+27-26
If i <= 52 Then
sCols = "A" & Chr(64 + i - 26) & ":" & "A" & Chr(64 + i - 26)
Else
If i <= 78 Then
sCols = "A" & Chr(64 + i - 26) & ":" & "B" & Chr(64 + i - 52)
Else
sCols = "A" & Chr(64 + i - 26) & ":" & "C" & Chr(64 + i - 78)
End If
End If
End If
rng = .Range(sCols)
rng.EntireColumn.AutoFit()
Next
If iFields + 1 <= 26 Then
sCols = Chr(65) & "1:" & Chr(64 + iFields + 1) & "1" ' A1: E1
Else
If iFields + 1 <= 52 Then
sCols = Chr(65) & "1:" & "A" & Chr(64 + iFields + 1 - 26) & "1"
Else
If iFields + 1 <= 78 Then
sCols = Chr(65) & "1:" & "B" & Chr(64 + iFields + 1 - 52) & "1"
Else
sCols = Chr(65) & "1:" & "C" & Chr(64 + iFields + 1 - 78) & "1"
End If
End If
End If

.Range(sCols).Select()
rng = .Range(sCols)
With rng.Borders(Excel.XlBordersIndex.xlEdgeLeft)
.LineStyle = 1 'xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeTop)
.LineStyle = 1 'xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With

With rng.Borders(Excel.XlBordersIndex.xlEdgeRight)
.LineStyle = 1 ' xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With

With rng.Borders(Excel.XlBordersIndex.xlEdgeBottom)
.LineStyle = 1 ' xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With
With rng.Borders(Excel.XlBordersIndex.xlInsideVertical)
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
If iFields + 1 <= 26 Then
sCols = Chr(65) & "1:" & Chr(64 + iFields + 1) & nb + 1
Else
If iFields + 1 <= 52 Then
sCols = Chr(65) & "1:" & "A" & Chr(64 + iFields + 1 - 26) & nb + 1
Else
If iFields + 1 <= 78 Then
sCols = Chr(65) & "1:" & "B" & Chr(64 + iFields + 1 - 52) & nb + 1
Else
sCols = Chr(65) & "1:" & "C" & Chr(64 + iFields + 1 - 78) & nb + 1
End If
End If
End If
.Range(sCols).Select()
rng = .Range(sCols)
With rng.Borders(Excel.XlBordersIndex.xlEdgeLeft) ' left
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeTop) ' top
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeBottom) ' bottom
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeRight) ' right
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlInsideVertical) ' verticale
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
' total si bBol
If bBol Then
.Cells(nb + 2, 1) = "Total"
'
Select Case etat
Case "statistiques dr-drf"
sCols = Chr(65 + rs.Fields.Count - 1) & "2" & ":" & Chr(65 + rs.Fields.Count - 1) & nb + 1
.Cells(nb + 2, rs.Fields.Count) = "=Somme(" & sCols & ")"
sCols = Chr(65) & nb + 2 & ":" & Chr(65 + rs.Fields.Count - 1) & nb + 2
Case "coutdurisque"
sCols = Chr(65 + rs.Fields.Count - 3) & 2 & ":" & Chr(65 + rs.Fields.Count - 3) & nb + 1 ' &
.Cells(nb + 2, rs.Fields.Count - 2) = "=Somme(" & sCols & ")"
sCols = Chr(65 + rs.Fields.Count - 2) & 2 & ":" & Chr(65 + rs.Fields.Count - 2) & nb + 1
.Cells(nb + 2, rs.Fields.Count - 1) = "=Somme(" & sCols & ")"
Case "prodmensuelle"
sCols = Chr(65 + rs.Fields.Count - 3) & 2 & ":" & Chr(65 + rs.Fields.Count - 3) & nb + 1
.Cells(nb + 2, rs.Fields.Count - 2) = "=Somme(" & sCols & ")"
sCols = Chr(65 + rs.Fields.Count - 4) & 2 & ":" & Chr(65 + rs.Fields.Count - 4) & nb + 1
.Cells(nb + 2, rs.Fields.Count - 3) = "=Somme(" & sCols & ")"
End Select
If iFields <= 26 Then
sCols = Chr(65) & nb + 2 & ":" & Chr(65 + iFields) & nb + 2
Else
If iFields <= 52 Then
sCols = Chr(65) & nb + 2 & ":" & "A" & Chr(65 + iFields - 26) & nb + 2
Else
If iFields <= 78 Then
sCols = Chr(65) & nb + 2 & ":" & "B" & Chr(65 + iFields - 52) & nb + 2
Else
sCols = Chr(65) & nb + 2 & ":" & "C" & Chr(65 + iFields - 78) & nb + 2
End If
End If
End If

.Range(sCols).Select()
rng = .Range(sCols)
With rng.Borders(Excel.XlBordersIndex.xlEdgeTop) ' top
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeBottom) ' bottom
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeRight) ' right
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlInsideVertical) ' verticale
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
End If
.Application.ActiveWorkbook.Save()
End With



FrmSt.Close()
FrmSt.Dispose()
excelApp.Visible = True

MsgBox("Pressez une touche et Excel va se fermer Excel" & vbCrLf & "Votre fichier s'appelle " & fichier, MsgBoxStyle.Information)
excelApp.Application.Quit()
Exit Function
err_Renamed:
TraceError("Module DocExcel Fonction EtatExcel", Err.Description, Err.Number, Err.Source)

MsgBox("Erreur: " & Err.Description, MsgBoxStyle.Critical)
Err.Clear()
excelApp.Application.Quit()
excelApp = Nothing
FrmSt.Close()
FrmSt.Dispose()
Exit Function
End Function
End Module

Cela vaudra mieux qu'un yaka

vendredi 23 avril 2004 à 14:01:35 | Re : vb .net sql et excel

labout


labout

Je te mets le code

Ce dode permet de tranférer vers Excel le contenu d'une requête avec encadrement et totaux éventuels.
Je me suis trompé (238 lignes)

Option Strict On
Option Explicit On
Module DocExcel
' nom du fichier xls total oui ou non
Function EtatExcel(ByRef rs As ADODB.Recordset, ByRef etat As String, ByRef bBol As Boolean) As Boolean
Dim fichier As String
Dim FrmSt As New FrmStatus
Dim i As Integer
Dim j As Integer
Dim nb As Integer
Dim sCols As String
Dim iFields As Integer
Dim ExcelWasNotRunning As Boolean
Dim iLastcol As Integer

Dim excelApp As New Excel.Application
Dim excelBook As Excel.Workbook = excelApp.Workbooks.Add
Dim excelWorksheet As Excel.Worksheet = _
CType(excelBook.Worksheets(1), Excel.Worksheet)
Dim rng As Excel.Range

' Unlike the Word demo, we'll make the spreadsheet visible so you can see
' the data being entered.
excelApp.Visible = True
On Error GoTo err_Renamed
FrmSt.Show("Création de la feuille Excel en cours." & vbCrLf & "Patientez...")
iFields = rs.Fields.Count - 1
fichier = New String(Chr(0), 100)
'Get the temporary path
GetTempPath(100, fichier)
fichier = CLeft(fichier, InStr(fichier, Chr(0)) - 1)

fichier = Trim(fichier) & etat & ".XLS"
If Dir(fichier) <> "" Then
Kill(fichier)
End If

With excelApp.Application
.Workbooks.Add()
.ActiveWorkbook.SaveAs(fichier)
For i = 0 To iFields
.Cells(1, i + 1) = rs.Fields(i).Name
Next
j = 2
nb = 0
Do While Not rs.EOF
System.Windows.Forms.Application.DoEvents()
nb = nb + 1
For i = 0 To iFields
System.Windows.Forms.Application.DoEvents()
.Cells(j, i + 1) = rs.Fields(i).Value
Next
j = j + 1
rs.MoveNext()
Loop

' on autorise 104 colonnes pour le moment
For i = 1 To iFields + 1
If i <= 26 Then
sCols = Chr(64 + i) & ":" & Chr(64 + i)
Else ' 64+27-26
If i <= 52 Then
sCols = "A" & Chr(64 + i - 26) & ":" & "A" & Chr(64 + i - 26)
Else
If i <= 78 Then
sCols = "A" & Chr(64 + i - 26) & ":" & "B" & Chr(64 + i - 52)
Else
sCols = "A" & Chr(64 + i - 26) & ":" & "C" & Chr(64 + i - 78)
End If
End If
End If
rng = .Range(sCols)
rng.EntireColumn.AutoFit()
Next
If iFields + 1 <= 26 Then
sCols = Chr(65) & "1:" & Chr(64 + iFields + 1) & "1" ' A1: E1
Else
If iFields + 1 <= 52 Then
sCols = Chr(65) & "1:" & "A" & Chr(64 + iFields + 1 - 26) & "1"
Else
If iFields + 1 <= 78 Then
sCols = Chr(65) & "1:" & "B" & Chr(64 + iFields + 1 - 52) & "1"
Else
sCols = Chr(65) & "1:" & "C" & Chr(64 + iFields + 1 - 78) & "1"
End If
End If
End If

.Range(sCols).Select()
rng = .Range(sCols)
With rng.Borders(Excel.XlBordersIndex.xlEdgeLeft)
.LineStyle = 1 'xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeTop)
.LineStyle = 1 'xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With

With rng.Borders(Excel.XlBordersIndex.xlEdgeRight)
.LineStyle = 1 ' xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With

With rng.Borders(Excel.XlBordersIndex.xlEdgeBottom)
.LineStyle = 1 ' xlContinuous
.Weight = -4138 ' xlMedium
.ColorIndex = -4105 ' xlAutomatic
End With
With rng.Borders(Excel.XlBordersIndex.xlInsideVertical)
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
If iFields + 1 <= 26 Then
sCols = Chr(65) & "1:" & Chr(64 + iFields + 1) & nb + 1
Else
If iFields + 1 <= 52 Then
sCols = Chr(65) & "1:" & "A" & Chr(64 + iFields + 1 - 26) & nb + 1
Else
If iFields + 1 <= 78 Then
sCols = Chr(65) & "1:" & "B" & Chr(64 + iFields + 1 - 52) & nb + 1
Else
sCols = Chr(65) & "1:" & "C" & Chr(64 + iFields + 1 - 78) & nb + 1
End If
End If
End If
.Range(sCols).Select()
rng = .Range(sCols)
With rng.Borders(Excel.XlBordersIndex.xlEdgeLeft) ' left
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeTop) ' top
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeBottom) ' bottom
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeRight) ' right
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlInsideVertical) ' verticale
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
' total si bBol
If bBol Then
.Cells(nb + 2, 1) = "Total"
'
Select Case etat
Case "statistiques dr-drf"
sCols = Chr(65 + rs.Fields.Count - 1) & "2" & ":" & Chr(65 + rs.Fields.Count - 1) & nb + 1
.Cells(nb + 2, rs.Fields.Count) = "=Somme(" & sCols & ")"
sCols = Chr(65) & nb + 2 & ":" & Chr(65 + rs.Fields.Count - 1) & nb + 2
Case "coutdurisque"
sCols = Chr(65 + rs.Fields.Count - 3) & 2 & ":" & Chr(65 + rs.Fields.Count - 3) & nb + 1 ' &
.Cells(nb + 2, rs.Fields.Count - 2) = "=Somme(" & sCols & ")"
sCols = Chr(65 + rs.Fields.Count - 2) & 2 & ":" & Chr(65 + rs.Fields.Count - 2) & nb + 1
.Cells(nb + 2, rs.Fields.Count - 1) = "=Somme(" & sCols & ")"
Case "prodmensuelle"
sCols = Chr(65 + rs.Fields.Count - 3) & 2 & ":" & Chr(65 + rs.Fields.Count - 3) & nb + 1
.Cells(nb + 2, rs.Fields.Count - 2) = "=Somme(" & sCols & ")"
sCols = Chr(65 + rs.Fields.Count - 4) & 2 & ":" & Chr(65 + rs.Fields.Count - 4) & nb + 1
.Cells(nb + 2, rs.Fields.Count - 3) = "=Somme(" & sCols & ")"
End Select
If iFields <= 26 Then
sCols = Chr(65) & nb + 2 & ":" & Chr(65 + iFields) & nb + 2
Else
If iFields <= 52 Then
sCols = Chr(65) & nb + 2 & ":" & "A" & Chr(65 + iFields - 26) & nb + 2
Else
If iFields <= 78 Then
sCols = Chr(65) & nb + 2 & ":" & "B" & Chr(65 + iFields - 52) & nb + 2
Else
sCols = Chr(65) & nb + 2 & ":" & "C" & Chr(65 + iFields - 78) & nb + 2
End If
End If
End If

.Range(sCols).Select()
rng = .Range(sCols)
With rng.Borders(Excel.XlBordersIndex.xlEdgeTop) ' top
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeBottom) ' bottom
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlEdgeRight) ' right
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
With rng.Borders(Excel.XlBordersIndex.xlInsideVertical) ' verticale
.LineStyle = 1
.Weight = -4138
.ColorIndex = -4105
End With
End If
.Application.ActiveWorkbook.Save()
End With



FrmSt.Close()
FrmSt.Dispose()
excelApp.Visible = True

MsgBox("Pressez une touche et Excel va se fermer Excel" & vbCrLf & "Votre fichier s'appelle " & fichier, MsgBoxStyle.Information)
excelApp.Application.Quit()
Exit Function
err_Renamed:
MsgBox("Erreur: " & Err.Description, MsgBoxStyle.Critical)
Err.Clear()
excelApp.Application.Quit()
excelApp = Nothing
FrmSt.Close()
FrmSt.Dispose()
Exit Function
End Function
End Module

C'esu un code PERSO VB6 que j'ai adapté en VB.NET
Cela vaudra mieux qu'un yaka

vendredi 23 avril 2004 à 15:10:36 | Re : vb .net sql et excel

helonear

merci beaucoup pour vos contribution encore qu il faudrait peu etre m expliquer ce qu est le DTS

et merci grace a toi je vai encore utiliser 3 tubes d aspirines pour relire et comprendre ton code

en tout cas merci

vendredi 23 avril 2004 à 15:16:54 | Re : vb .net sql et excel

crenaud76

DTS veut dire Data Transformation Service ! Sur un SQLServer, tu as un service MSDTS qui permet d'importer/exporter des données depuis a peu près n'importe quoi (base sql, ficheir texte, excel, base access, oracle, ou odbc) vers ou depuis à peu près n'importe quoi ! C'est ultra-puissant, automatisable, et simple a programmer : il suffit de poser des "briques" fonctionnelles, un peu comme si tu dessinais ton algorithme de transfert, et ca roule.
Voir la doc de SQLServer sur le sujet, ou il y a un tres bon tutor (sur celle de la version 2000 toujours)

Christophe R.

vendredi 23 avril 2004 à 15:22:36 | Re : vb .net sql et excel

helonear


hum tres interessant encore merci pour ce cours de base de donnée dont j avais besoin merci

vendredi 23 avril 2004 à 15:51:48 | Re : vb .net sql et excel

labout


labout
Avec ce que je t'ai donné tu n'as rien à modifier
Il suffit de le mettre dans un module
et il te fuffit d'appeller la fonction avec les 3 parametres
cela te fait même les cadres.
Tu n'as même pas besoin de comprendre comment cela marche
@+

vendredi 23 avril 2004 à 16:41:19 | Re : vb .net sql et excel

crenaud76

Meme s'il n'a pas besoin de comprendre comment cela marche, j'espère pour lui qu'il essaiera de comprendre .... sinon je lui cause plus

Christophe R.


1 2

Cette discussion est classé dans : net, vb, application, sql, excel


Répondre à ce message

Sujets en rapport avec ce message

[.NET] SQL / EXCEL / VB.NET [ par guigui43 ] Je fais un programme ou j'extrais des données d'une base SQL Oracle et je les colle dans un datagrid.Je voudrai exporter ces données (je suis avec Off le nom du serveur a chaque fois vb.net [ par Boudchiche ] Salut à tout le mondeMon probleme est le suivantj'ai développer une application en vb.net et ma base de donnee est en sql server 2000dans mon applicat Application vb.net /sql server 2005 [ par onemonster ] Bonjour je travaille sur application en vb.net s'appyant sur une base de données Sql server 2005. Ma question:Est il possible d'utiliser mon applicat Excel et VB.net [ par whitepawn ] Bonjour a tous. J'espère que vous pourrez m'aider. Je suis en train de faire une application en VB2005 qui doit récupérer les coordonnées de la plage delete from en vb.net [ par bcmfr ] Bonjour à tousj'ai besoin de votre aide pour savoir comment supprimer des données de ma base access grace a delete mais sans utiliser SQL server. Or s VB.NET et Excel 2003 [ par nwwara ] Salut; Private excelapp AsNew Excel.Application Probléme génération application vb.net [ par andres06 ] Salut . quand le windows installer commence à générer une application s'affiche ce message :ce qui empeche la suite de la généra Calcul sous excel pour vb net [ par pifranl ] Boujour à tous,je suis actuellement en train de réaliser un programme sous vbnet mais je suis face à quelques problèmes (mon niveau est assez faible) Aide propriétés Excel avec vb.net [ par toosdu87 ] Bonjour je suis débutant en vb.net.J'utilise visual studio 2005 express.Je souhaite exporter un fichier texte avec des données vers excel. Je parviens Migration vb6 vers vb.net 2005 [ par billy21121 ] Bonjour a tous.En ce moment, je suis en train de migrer une application developpée en vb6 vers vb.net 2005. Et ayant entamé le developpement, je me po


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.