Archivage et restauration devis VBA

Bonjour, je cherche actuellement à créer un archivage de devis et un moyen de restaurer les informations si par exemple nous devons passer sur un versione 1 ou 2 ...

pour l'instant j'arrive à mettre les informations que je souhaite dans la feuille "historique archivage", mais je rencontre un premier problème : je suis obligé de donner un ordre au niveau des colonnes, j'aimerais que si la colonne à droite est vide alors le prochain "champ" à mettre aille dedans. Voici mon code actuel :

Private Sub Archivage_Click()
Message = MsgBox("Voulez-vous archiver le devis ?", vbYesNo)

ligne = Sheets("Historique Archivage").Range("A2").End(xlDown).Row + 1
Range("Numero").Value = Range("NumDevis").Value

If Message = vbYes Then

Sheets("Historique Archivage").Range("A" & ligne).Value = Sheets("Devis").Range("NumDevis")
Sheets("Historique Archivage").Range("B" & ligne).Value = Sheets("Devis").Range("Date")
Sheets("Historique Archivage").Range("C" & ligne).Value = Sheets("Devis").Range("A17")
Sheets("Historique Archivage").Range("D" & ligne).Value = Sheets("Devis").Range("A14")
Sheets("Historique Archivage").Range("E" & ligne).Value = Sheets("Devis").Range("K3")
Sheets("Historique Archivage").Range("F" & ligne).Value = Sheets("Devis").Range("TOTAL_HT")
Sheets("Historique Archivage").Range("G" & ligne).Value = Sheets("Devis").Range("TVA")
Sheets("Historique Archivage").Range("H" & ligne).Value = Sheets("Devis").Range("TOTAL_TTC")
End If

End Sub

j'aimerais trouver un code pour faire en sorte que si la colonne A est vide alors la valeur NumDevis est inséré dedans, si B est vide c'est la valeur date etc etc

Si jamais vous avez des idées je suis preneur.

j'ai essayé de potasser sur d'autres code mais rien ne marche :

Sub test()
ligne = Sheets("Historique Archivage").Range("A2").End(xlDown).Row + 1
colonne = Sheets("Historique Archivage").Range("A2").End(xlDown).Column
Range("Numero").Value = Range("NumDevis").Value

If Sheets("Historique Archivage").Cells(ligne, colonne).Value <> "STOP" Then

colonne = colonne + 1
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("NumDevis")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("Date")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("A17")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("A14")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("K3")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("TOTAL_HT")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("TVA")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("TOTAL_TTC")
End If

End Sub

Sub testb()
ligne = Sheets("Historique Archivage").Range("A2").End(xlDown).Row + 1
colonne = Sheets("Historique Archivage").Range("A2").End(xlDown).Column

Do While Sheets("Historique Archivage").Range(Cells(ligne, 1), Cells(ligne, 100)).Value = ""
colonne = colonne + 1
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("NumDevis")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("Date")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("A17")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("A14")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("K3")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("TOTAL_HT")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("TVA")
Sheets("Historique Archivage").Cells(ligne, colonne).Value = Sheets("Devis").Range("TOTAL_TTC")
Loop

End Sub

Merci par avance,

Goat

Bonjour

Avec le fichier anonymisé si nécessaire on gagnerait du temps

Bonjour Yal_Excel,

ci-joint mon devis

30devis-test.xlsm (78.15 Ko)
Rechercher des sujets similaires à "archivage restauration devis vba"