Rediger une macro d'importation
Bonjour,
je suis entrain de rediger une macro d'importation mais elle bloque et je ne vois pas où est le problème.
Le but est de transferer les colonnes datedébut, heuredébut et heurefin de la feuille "importation" à la feuille "extract"
Voilà ce que j'ai rédigé, je ne sais pas combien il y aura de ligne dans mon tableau de données
Sub importer_donnees()
Dim nbval As Long
Dim i As Long
nbval = Application.WorksheetFunction.CountA(Sheets("Importation").Range("a:a")) - 1
Application.Calculation = xlCalculationManual
With Sheets("Importation")
Sheets("Extract").Range("a2:Y65000").Delete
For i = 1 To nbval
Sheets("Extract").Range("Dateentrée").Offset(i, 0).Value = .Range("b1").Offset(i, 0).Value
'1440 minutes dans une journée
If .Range("c1").Offset(i, 0).Value = 0 Then
Sheets("Extract").Range("Heureentree").Offset(i, 0).Value = ""
Else: Sheets("Extract").Range("HeureEntree").Offset(i, 0).Value = Format(.Range("c1").Offset(i, 0).Value / 1440, "hh:mm")
End If
If .Range("g1").Offset(i, 0).Value = 0 Then
Sheets("Extract").Range("Heuresortie").Offset(i, 0).Value = ""
Else: Sheets("Extract").Range("D_Heuresortie").Offset(i, 0).Value = Format(.Range("g1").Offset(i, 0).Value / 1440, "hh:mm")
End If
Application.Calculation = xlCalculationAutomatic
End With
End Sub
Une idée?
Bonjour,
Normal que cela bloque car il te manque le NEXT pour ta boucle FOR i ....
Le code modifié si j'ai bien compris ce que tu veux faire :
Sub importer_donnees()
'Macro amendée par DAn - Xl pratique
'http://forum.excel-pratique.com/viewtopic.php?t=11232
Dim nbval As Long
Dim i As Integer
Sheets("Extract").Range("A2:Y65000").Delete
With Sheets("Importation")
nbval = .Range("A65536").End(xlUp).Row - 1
For i = 2 To nbval
Sheets("Extract").Range("B" & i) = Format(.Range("b" & i), "dd/mm/yy")
'1440 minutes dans une journée
If .Range("c" & i) = 0 Then
Sheets("Extract").Range("c" & i) = ""
Else: Sheets("Extract").Range("c" & i) = Format(.Range("c" & i) / 1440, "hh:mm")
End If
If .Range("g" & i) = 0 Then
Sheets("Extract").Range("g" & i) = ""
Else: Sheets("Extract").Range("g" & i) = Format(.Range("g" & i) / 1440, "hh:mm")
End If
Next
End With
End SubAmicalement
Dan
Bonjour camionette, Nad-Den
il serait bien que tu donnes suite à tes poste précédents
https://www.excel-pratique.com/forum/viewtopic.php?t=11168
https://www.excel-pratique.com/forum/viewtopic.php?p=64114#64114