Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Aide sur une partie de ma fonction

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
 

Pièces jointes

  • MonExemple.zip
    21.9 KB · Affichages: 16
  • MonExemple.zip
    21.9 KB · Affichages: 19
  • MonExemple.zip
    21.9 KB · Affichages: 17
R

Roland

Guest
salut
pour passer de lacellule active à une autre offset(nblignes,nbcolonnes)
ex: décaller la cellule active de 3 lignes et 2colonnes
activecell.offset(3,2).select
bye +
 

Discussions similaires

Réponses
2
Affichages
586
Réponses
0
Affichages
308
Réponses
2
Affichages
294
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…