Programme qui rame

Bonjour,

Je débute sur Visual Basic depuis deux semaines.

J'essaye de créer une macro pour traiter des données.

Sur mon classeur excel, j'ai un onglet export avec plusieurs colonnes de données correspondant à l'enregistrement d'un process.

Dans ma colonne B de l'onglet Export, il s'agit de dates. (jj:mm:aaaa hh:m:ss)

Pour mon traitement de données, j'ai besoin de raisonner avec des heures de fonctionnement.

Or il y a eu un arret sur mon process.

Connaisant la date de reprise du process, j'ai pu repérér l'indice de la ligne correspondant à la date de reprise.

Je voudrais donc dans une nouvelle colonne, créer une matrice d'heure.

Voilà ce que j'ai codé et qui met un temps interminable à se faire:

Sub test()

Worksheets("Export").Activate

'Definition de la plage de ligne à traiter

LigneStart = 8
ligneEnd = Worksheets("Export").Range("A65536").End(xlUp).Offset(1, 0).Row

'''''''''''' Création de la matrice heure

k = Worksheets("Compil").Range("C32")   'indice de la ligne correspondant à la première date après le shutdown

For i = LigneStart To k

Range("AA" & i) = Range("B" & i) - Range("B8") ' avant coupure

Next i

For i = k To ligneEnd

Range("AA" & i) = Range("B" & i) - Range("B8") - (Range("B" & k) - Range("B" & (k - 1)))  'après coupure

Next i

End Sub

Si quelqu'un peut m'aiguiller sur ce qui ne va pas dans mon code et qui fait ramer la macro ce serait super.

Le code se fait, j'ai "testé" avec F8 sur quelques lignes.

Merci d'avance

Bonjour

A 1ère vue cela devrait tourner rapidement

A vérifier si tu as d'autres macros (Fonctions personnalisées), beaucoup de formules dans tes pages

Tu peux modifier ta macro

Suppression du rafraichissement de l'affichage

Mode de calcul en manuel : remis en automatique à la fin

Blocage des évènements : Remis à la fin

Sub test()

  With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
  End With

  Worksheets("Export").Activate

  'Definition de la plage de ligne à traiter

  LigneStart = 8
  ligneEnd = Worksheets("Export").Range("A65536").End(xlUp).Offset(1, 0).Row

  '''''''''''' Création de la matrice heure
  k = Worksheets("Compil").Range("C32")   'indice de la ligne correspondant à la première date après le shutdown

  For i = LigneStart To k
    Range("AA" & i) = Range("B" & i) - Range("B8") ' avant coupure
  Next i

  For i = k To ligneEnd
    Range("AA" & i) = Range("B" & i) - Range("B8") - (Range("B" & k) - Range("B" & (k - 1)))  'après coupure
  Next i

  With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
  End With

End Sub

Si cela ne suffit pas, ton fichier en cause est indispensable

Super, je viens de tester et ça tourne normalement

Merci beaucoup !!!

Rechercher des sujets similaires à "programme qui rame"