Bonjour à tous,
Je cherche à faire un traitement sur une plage de cellules en VBA, mais sans réussite, sois j’ai des problèmes de mémoire insuffisante, sois les chiffres donnés en finalité ne correspondent à rien…
Voici ce que je souhaite obtenir :
1/ Je défini un coeff correcteur
2/J’ouvre un fichier source (Fichier A). Je copie ses données (nombres entiers)
3/Je crée un nouveau tableur Excel (Fichier B). Je colle les données.
4/J’applique le coeff correcteur à toutes les valeurs précédemment collées.
5/Je quitte et enregistre ce ficher sous un nom spécifique.
L’étape qui cloche, c’est celle ou j’applique le coeff multiplicateur, les résultats ne sont pas les bons dans le fichier B… Problème de variable, de code en général ?
En espérant qu’une âme charitable puisse localiser mon problème…
Merci, bonne journée !
Voici le code :
Je cherche à faire un traitement sur une plage de cellules en VBA, mais sans réussite, sois j’ai des problèmes de mémoire insuffisante, sois les chiffres donnés en finalité ne correspondent à rien…
Voici ce que je souhaite obtenir :
1/ Je défini un coeff correcteur
2/J’ouvre un fichier source (Fichier A). Je copie ses données (nombres entiers)
3/Je crée un nouveau tableur Excel (Fichier B). Je colle les données.
4/J’applique le coeff correcteur à toutes les valeurs précédemment collées.
5/Je quitte et enregistre ce ficher sous un nom spécifique.
L’étape qui cloche, c’est celle ou j’applique le coeff multiplicateur, les résultats ne sont pas les bons dans le fichier B… Problème de variable, de code en général ?
En espérant qu’une âme charitable puisse localiser mon problème…
Merci, bonne journée !
Voici le code :
Code:
'Définition variable coeff correcteur %
Dim coefffocale1 As Currency
coefffocale1 = Range("B3").Value
'Ouverture table source
Workbooks.Open Filename:= _
lientable1
Dim nomfichiersource As String
nomfichiersource = ActiveWorkbook.Name
'Copies données
Range("A1:I105").Copy
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
'Création nouvau Tableur Excel
Dim exc As New Excel.Application
Workbooks.Add
Sheets("Feuil1").Select
Dim nomfichiercorrigé As String
nomfichiercorrigé = ActiveWorkbook.Name
'Collage données
ActiveSheet.Paste
Dim r As Range 'Range source à tester
Dim c As Range 'Cellule du range source
Dim I As Currency ' Valeur temporaire de calcul
Set r = Range("B2:B105")
For Each c In r
I = c.Value
While I Mod 60 <> 0
I = I * coefffocale1
Wend
c.Offset(1, 0).Value = I 'Affecte valeur à cellule en dessous ..
Next
'Enregistrment
Dim NomFichier As String
NomFichier = "test_exportation_csv.csv"
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & NomFichier, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
ActiveWorkbook.Close
End With
End Sub