Bonjour Domes85,
Si je comprends bien ton code, tu as un tableau de 4 colonnes (A à D) que tu copies/colles sur les colonnes (E à H) avec un nombre de lignes variables ?
Comme certaines données sont au format texte tu les convertis en nombres - colonnes C-D => G-H en inversant le signe pour la colonne débit.
Tu veux inclure les données transformées dans un nouveau classeur. Est ce qu'il s'agit des 8 colonnes ou bien uniquement les 4 transformées ?
Quelques remarques : ton code doit être affreusement lent car il utilise .Select ce qui est MAL Cependant si tu veux l'accélérer utilises le code suivant au début de la procédure
Application.Screenupdating =false
et termine par
1 2
| Application.Screenupdating=true
End Sub |
ça devrait aller plus vite.
Cordialement,
Guillaume
Rebonjour,
Je reviens sur ton code. Le mieux est de passer par une variable tableau pour éviter les Select en boucle.
Essaie avec le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Option Explicit
Sub Domes85()
Dim DerLigne As Integer, i As Integer
Dim Plage As Range
Dim Tableau() As Variant
Set Plage = ActiveWorkbook.ActiveSheet.UsedRange
Tableau = Plage.Value
DerLigne = Plage.Rows.Count
For i = 1 To DerLigne
If Tableau(i, 3) > 0 Then
Tableau(i, 3) = Tableau(i, 3) * -1
End If
Next i
Range(Cells(1, 5), Cells(DerLigne, 8)) = Tableau
Set Plage = Nothing
End Sub |
Je n'ai pas traité ta problématique de caractère spéciaux ni l'ajout à un classeur mais cela devrait être plus rapide.
EDIT : je n'ai pas commenté le code mais reviens moi si tu veux des explications.
Cordialement,
Guillaume
Partager