K
Keawee
Guest
Bonjour,
J'aurais besoin de votre éclaircissement sur un problème que je rencontre.
J'ai deux requêtes qui vont s'insérer dynamiquement dans Excel.
Ma première requête:
Je sais que mes données vont commencer en A3 et qu'elles vont se terminer en A20. La ligne A3:A65000 est le titre de chaque colonne et les colonnes A3:A20 correspondent à des champs au format texte et ce sont mes en-têtes de ligne.
Lors du transfert de mes données en Access et Excel, Excel ne connaîtra pas à l'avance le nombre de colonne que vais trouver après la colonne A. Je peux avoir 1 colonne à XXXXXX colonnes.
Ma deuxième requête:
C'est la même chose que la première requête sauf que je n’aurais qu'une seule ligne d'enregistrements. Cette requête sera placée dans la ligne en B22
Je souhaiterais utiliser mon code ci-dessous, mais il y a une partie sur laquelle je bloque. J'ai placé ma variable Rg B24. Comment faire une boucle pour dire si ma cellule B3 n'est pas vide(si il existe un nom de colonne) alors fais (B14/B22)*100 puis si ma cellule C3 n'est pas vide alors fais (C14/C22)*100 puis si ma cellule D3 est vide alors arrête-toi et laisse vide la cellule ou tu es c'est-à-dire la D24. Je ne sais pas passer de cellule à cellule par du code c'est-à-dire de passer de C24 à C25 et ainsi de suite en vérifiant si dans ma cellule C3 j'ai quelque chose et si oui je fais la calcul puis je passe à la cellule suivante et si non j'arrête
Pourriez-vous m'éclaircir sur se problème.
Private Sub DataTransfertToExcelInstallBaseTotal()
Dim db As Variant
Dim rs As Variant
Dim fichier As Variant
Dim stAppName As String
fichier = Application.CurrentProject.Path
Set db = DBEngine.OpenDatabase(fichier & "\ProductPerformance.mdb")
Set rs = db.OpenRecordset("Board Install Base + Total", dbOpenDynaset)
Dim XL_App As Object
Set XL_App = CreateObject("Excel.Application")
Dim XL_classeur As Object
Dim XL_feuille As Object
Dim Rg As Range
Dim Nb As Long
Dim Sh As Worksheet
With XL_App
Set XL_classeur = .Workbooks.Open(fichier & "\GPPR_POP.xls")
Set Sh = XL_classeur.Sheets("Install Base")
With Sh
Set Rg = .Range("A7").End(xlDown).Offset(4, 2)
End With
Rg.CurrentRegion.Clear
'//\\ -->C'est ici que je bloque !!!!!
.DisplayAlerts = False
.ActiveWorkbook.SaveAs fichier & "\GPPR_POP.xls"
.ActiveWorkbook.Close
.DisplayAlerts = True
.Quit
End With
db.Close
Set XL_App = Nothing
Set XL_classeur = Nothing
Set XL_feuille = Nothing
End Sub
Merci de votre aide
Keawee
J'aurais besoin de votre éclaircissement sur un problème que je rencontre.
J'ai deux requêtes qui vont s'insérer dynamiquement dans Excel.
Ma première requête:
Je sais que mes données vont commencer en A3 et qu'elles vont se terminer en A20. La ligne A3:A65000 est le titre de chaque colonne et les colonnes A3:A20 correspondent à des champs au format texte et ce sont mes en-têtes de ligne.
Lors du transfert de mes données en Access et Excel, Excel ne connaîtra pas à l'avance le nombre de colonne que vais trouver après la colonne A. Je peux avoir 1 colonne à XXXXXX colonnes.
Ma deuxième requête:
C'est la même chose que la première requête sauf que je n’aurais qu'une seule ligne d'enregistrements. Cette requête sera placée dans la ligne en B22
Je souhaiterais utiliser mon code ci-dessous, mais il y a une partie sur laquelle je bloque. J'ai placé ma variable Rg B24. Comment faire une boucle pour dire si ma cellule B3 n'est pas vide(si il existe un nom de colonne) alors fais (B14/B22)*100 puis si ma cellule C3 n'est pas vide alors fais (C14/C22)*100 puis si ma cellule D3 est vide alors arrête-toi et laisse vide la cellule ou tu es c'est-à-dire la D24. Je ne sais pas passer de cellule à cellule par du code c'est-à-dire de passer de C24 à C25 et ainsi de suite en vérifiant si dans ma cellule C3 j'ai quelque chose et si oui je fais la calcul puis je passe à la cellule suivante et si non j'arrête
Pourriez-vous m'éclaircir sur se problème.
Private Sub DataTransfertToExcelInstallBaseTotal()
Dim db As Variant
Dim rs As Variant
Dim fichier As Variant
Dim stAppName As String
fichier = Application.CurrentProject.Path
Set db = DBEngine.OpenDatabase(fichier & "\ProductPerformance.mdb")
Set rs = db.OpenRecordset("Board Install Base + Total", dbOpenDynaset)
Dim XL_App As Object
Set XL_App = CreateObject("Excel.Application")
Dim XL_classeur As Object
Dim XL_feuille As Object
Dim Rg As Range
Dim Nb As Long
Dim Sh As Worksheet
With XL_App
Set XL_classeur = .Workbooks.Open(fichier & "\GPPR_POP.xls")
Set Sh = XL_classeur.Sheets("Install Base")
With Sh
Set Rg = .Range("A7").End(xlDown).Offset(4, 2)
End With
Rg.CurrentRegion.Clear
'//\\ -->C'est ici que je bloque !!!!!
.DisplayAlerts = False
.ActiveWorkbook.SaveAs fichier & "\GPPR_POP.xls"
.ActiveWorkbook.Close
.DisplayAlerts = True
.Quit
End With
db.Close
Set XL_App = Nothing
Set XL_classeur = Nothing
Set XL_feuille = Nothing
End Sub
Merci de votre aide
Keawee