Problème VBA

  • Initiateur de la discussion Jean Charles
  • Date de début
J

Jean Charles

Guest
Bonjour le Forum

j'ai créer une macro avec l'enregistreur de macro avec diverses actions (convertir texte en tableau, convertir des dates etc etc )
le problème se pose après avoir transformé un texte en date (=1*(1"/"gauche(c1;nbcar(c1)-2)&"/"&droite(c1;2))
Comment faire pour qu'il reproduise la formule jusqu'au la 1ère cellule vide
je l'ai créer sur 40 lignes et ça marche très bien mais dès que j'en rajoute 20 ça plante (normal VBA le met jusque 40) et mon nombre de ligne peut varie très souvent (entre 600 et 1200)
je vous ai joint un zip
lancer la macro MAJ et voyez ce qu'il se passe en C41

Si quelqu'un avait une solution ça me libérerait d'un gros boulot !!!

Merci à vous tous et toutes et déjà très bon week end a vous
JC
 

Pièces jointes

  • test.zip
    10.2 KB · Affichages: 12
  • test.zip
    10.2 KB · Affichages: 15
  • test.zip
    10.2 KB · Affichages: 17
@

@Christophe@

Guest
Bonjour,

Remplace ton code par le suivant:

Sub MAJ()
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 9), Array(2, 1), Array(16, 1), Array(19, 2), Array(25, 9), _
Array(27, 1), Array(31, 1), Array(48, 1), Array(53, 1), Array(56, 4), Array(63, 1), Array( _
72, 1)), TrailingMinusNumbers:=True

Range("K1:K" & Range("C65536").End(xlUp).Row).FormulaR1C1 = "=1*(1&""/""&LEFT(RC[-8],LEN(RC[-8])-2)&""/""&RIGHT(RC[-8],2))"
Columns("K:K").Copy
Range("C1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

With Columns("C:C")
.NumberFormat = "[$-40C]mmm-yy;@"
.ColumnWidth = 8.86
End With

Columns("K:K").Delete Shift:=xlToLeft
Range("A1").Select
End Sub


Bonne journée

@Christophe@
 

Discussions similaires

Réponses
22
Affichages
728
Réponses
3
Affichages
600
Réponses
5
Affichages
440

Statistiques des forums

Discussions
312 785
Messages
2 092 093
Membres
105 194
dernier inscrit
Ateups