Bonjour
Toujours à partir de vos aides antérieures, j'ai monter cette petite application que je veux simple car je crois qu'on me demandera des modifications dans le futur. Donc, si elle demeure simple, je vais comprendre les formulations et pourrais effectuer les changements potentiels futurs.
Voir le fichier joint.
Après quelques exécution de la macro, bien que le résultat fini par arriver, il y a un laps de temps important. Ou est mon erreur. De plus j'aimerais lors de l'exécution "Ecrire" pouvoir faire un coller valeur mais ...
Merci encore de votre aide!
Sub Ecrire2()
Dim ligne As Byte: Dim col As Byte: Dim colus As Byte
Dim derlig As Integer
colus = 1
Sheets("Data").Select
derlig = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row + 1
For ligne = 2 To 9
For col = 2 To 3
Worksheets("Saisie").Cells(ligne, col).Copy Worksheets("Data").Cells(derlig, colus)
colus = colus + 1
Next col
Next ligne
For ligne = 11 To 13
For col = 2 To 5
Worksheets("Saisie").Cells(ligne, col).Copy Worksheets("Data").Cells(derlig, colus)
colus = colus + 1
Next col
Next ligne
Sheets("saisie").Select
End Sub
Sub lire3()
Dim ligne As Byte: Dim col As Byte: Dim colus As Byte: Dim ligus As Byte: Dim cellX As Range: Dim dv As Long: Dim k As Byte: Dim i As Byte: Dim NS As String, dlig As Long
colus = 1
ligus = 20
If [f1] = "" Then Exit Sub
With Worksheets("Data")
Set cellX = .[A2]: dlig = .Cells(Rows.Count, 1).End(xlUp).Row
End With
If dlig < 2 Then k = 2: Exit Sub
NS = [Saisie!f1]: k = 0 ' NS : n° de la soumission à chercher
For dv = 0 To dlig - 1
If cellX.Offset(dv) = NS Then k = 1
Next dv
Application.ScreenUpdating = False: Application.Calculation = -4135]
Dim lig As Long, n As Byte
For ligne = 2 To 9
For col = 12 To 13
Worksheets("Data").Cells(dv, colus).Copy Worksheets("Saisie").Cells(ligne, col)
colus = colus + 1
Next col
Next ligne
For ligne = 11 To 13
For col = 12 To 15
Worksheets("Data").Cells(dv, colus).Copy Worksheets("Saisie").Cells(ligne, col)
colus = colus + 1
Next col
Next ligne
End Sub