'Remise en place du devis normalisé
Dim NbLigSup&
If NbLig > 35 Then NbLigSup = NbLig - 18: Rows("18:" & NbLigSup).Delete shift:=xlUp
If IsNumeric(.Range("D5").Value) = True Then .Range("D5").Value = .Range("D5").Value + 1
Sub ARCHIVER()
Application.ScreenUpdating = False
Dim NbLig&, Ligne&
NbLig = Application.Match("TOTAL H.T", Range("C:C"), 0)...
Sub ARCHIVER()
Application.ScreenUpdating = False
Dim NbLig&, Ligne&
NbLig = Application.Match("TOTAL H.T", Range("C:C"), 0)
Ligne = Sheets("HISTORIQUE_DEVIS").Range("A2").End(xlDown).Row + 1
With Sheets("DEVIS")
Sheets("HISTORIQUE_DEVIS").Range("A" & Ligne).Value = .Range("D5").Value
Sheets("HISTORIQUE_DEVIS").Range("B" & Ligne).Value = .Range("D7").Value
Sheets("HISTORIQUE_DEVIS").Range("C" & Ligne).Value = .Range("A8").Value
Sheets("HISTORIQUE_DEVIS").Range("D" & Ligne).Value = .Range("D8").Value
Sheets("HISTORIQUE_DEVIS").Range("E" & Ligne).Value = .Range("D" & NbLig).Value
.Range("D7").ClearContents
.Range("A8").ClearContents
.Range("D8").ClearContents
.Range("A18:C" & NbLig - 2).ClearContents
.Range("D5").Value = .Range("D5").Value + 1
End With
End Sub
Bonjour Phil69970,Bonjour @chris63* , le forum
Je te propose ceci :
VB:Sub ARCHIVER() Application.ScreenUpdating = False Dim NbLig&, Ligne& NbLig = Application.Match("TOTAL H.T", Range("C:C"), 0) Ligne = Sheets("HISTORIQUE_DEVIS").Range("A2").End(xlDown).Row + 1 With Sheets("DEVIS") Sheets("HISTORIQUE_DEVIS").Range("A" & Ligne).Value = .Range("D5").Value Sheets("HISTORIQUE_DEVIS").Range("B" & Ligne).Value = .Range("D7").Value Sheets("HISTORIQUE_DEVIS").Range("C" & Ligne).Value = .Range("A8").Value Sheets("HISTORIQUE_DEVIS").Range("D" & Ligne).Value = .Range("D8").Value Sheets("HISTORIQUE_DEVIS").Range("E" & Ligne).Value = .Range("D" & NbLig).Value .Range("D7").ClearContents .Range("A8").ClearContents .Range("D8").ClearContents .Range("A18:C" & NbLig - 2).ClearContents .Range("D5").Value = .Range("D5").Value + 1 End With End Sub
@Phil69970
Ok, je vais tenter de trouver comment faire, sinon je reviendrai vers toi
Oui c'est la colonne CRange("C:C") représente la colonne C ?
Bonjour Phil69970Re
@chris63* as tu réussi à faire le redimensionnement de ton devis ?
Sub ARCHIVER()
Application.ScreenUpdating = False
Dim NbLig&, Ligne&
NbLig = Application.Match("TOTAL H.T", Range("C:C"), 0)
Ligne = Sheets("HISTORIQUE_DEVIS").Range("A2").End(xlDown).Row + 1
With Sheets("DEVIS")
Sheets("HISTORIQUE_DEVIS").Range("A" & Ligne).Value = .Range("D5").Value
Sheets("HISTORIQUE_DEVIS").Range("B" & Ligne).Value = .Range("D7").Value
Sheets("HISTORIQUE_DEVIS").Range("C" & Ligne).Value = .Range("A8").Value
Sheets("HISTORIQUE_DEVIS").Range("D" & Ligne).Value = .Range("D8").Value
Sheets("HISTORIQUE_DEVIS").Range("E" & Ligne).Value = .Range("D" & NbLig).Value
.Range("D7").ClearContents
.Range("A8").ClearContents
.Range("D8").ClearContents
.Range("A18:C" & NbLig - 2).ClearContents
.Range("D5").Value = .Range("D5").Value + 1
End With
'Remise en place du devis normalisé
Dim NbLigSup&
If NbLig > 33 Then NbLigSup = NbLig - 18: Rows("18:" & NbLigSup).Delete shift:=xlUp
End Sub
Oui c'est la colonne C
@Phil69970
'Remise en place du devis normalisé
Dim NbLigSup&
If NbLig > 35 Then NbLigSup = NbLig - 18: Rows("18:" & NbLigSup).Delete shift:=xlUp
If IsNumeric(.Range("D5").Value) = True Then .Range("D5").Value = .Range("D5").Value + 1
Sub ARCHIVER()
Application.ScreenUpdating = False
Dim NbLig&, Ligne&
NbLig = Application.Match("TOTAL H.T", Range("C:C"), 0)
Ligne = Sheets("HISTORIQUE_DEVIS").Range("A2").End(xlDown).Row + 1
With Sheets("DEVIS")
Sheets("HISTORIQUE_DEVIS").Range("A" & Ligne).Value = .Range("D5").Value
Sheets("HISTORIQUE_DEVIS").Range("B" & Ligne).Value = .Range("D7").Value
Sheets("HISTORIQUE_DEVIS").Range("C" & Ligne).Value = .Range("A8").Value
Sheets("HISTORIQUE_DEVIS").Range("D" & Ligne).Value = .Range("D8").Value
Sheets("HISTORIQUE_DEVIS").Range("E" & Ligne).Value = .Range("D" & NbLig).Value
.Range("D7").ClearContents
.Range("A8").ClearContents
.Range("D8").ClearContents
.Range("A18:C" & NbLig - 2).ClearContents
If IsNumeric(.Range("D5").Value) = True Then .Range("D5").Value = .Range("D5").Value + 1
End With
'Remise en place du devis normalisé
Dim NbLigSup&
If NbLig > 35 Then NbLigSup = NbLig - 18: Rows("18:" & NbLigSup).Delete shift:=xlUp
End Sub
je ne sais pas pourquoi j'ai mis 33
est-ce-qu'il y a un moyen de faire en sorte que le devis 2100117v2 puisse aller se "ranger" après le 2100117 dans l'historique (même si j'en suis à 2100122 par exemple) ?
De plus :(question subsidiaire : j'ai commencé le même genre de macro pour les factures. Évidemment, j'ai qq bugs.. je reviens poser mes questions sur ce post ou j'en ouvre un autre ?)