Simplification code VBA - incrémentation base de données

max.lander

XLDnaute Occasionnel
Bonsoir à tous,

Ce bout de code incrémente une base de données en copiant les données des cellules
de la feuille "Demandes" vers la feuille "Base" en reprenant à chaque fois la première ligne vide comme point de départ.

Le souci est que le code est vraiment trop basique et très long à l’exécution, j'ai du mal à mettre en place une boucle pour simplifier.

Avez-vous une idée pou faire plus propre?

Merci à tous,


Code:
ligne = Sheets("Base Congés").Range("a65536").End(xlUp).Row + 1


Sheets("Base").Cells(ligne, 1).Value = Sheets("Demandes").Range("C14")
Sheets("Base").Cells(ligne, 2).Value = Sheets("Demandes").Range("D14")
Sheets("Base").Cells(ligne, 3).Value = Sheets("Demandes").Range("E14")
Sheets("Base").Cells(ligne, 4).Value = Sheets("Demandes").Range("F14")

                            ligne = ligne + 1

Sheets("Base").Cells(ligne, 1).Value = Sheets("Demandes").Range("C15")
Sheets("Base").Cells(ligne, 2).Value = Sheets("Demandes").Range("D15")
Sheets("Base ").Cells(ligne, 3).Value = Sheets("Demandes").Range("E15")
Sheets("Base").Cells(ligne, 4).Value = Sheets("Demandes").Range("F15")


                            ligne = ligne + 1

Sheets("Base").Cells(ligne, 1).Value = Sheets("Demandes").Range("C16")
Sheets("Base").Cells(ligne, 2).Value = Sheets("Demandes").Range("D16")
Sheets("Base").Cells(ligne, 3).Value = Sheets("Demandes").Range("E16")
Sheets("Base").Cells(ligne, 4).Value = Sheets("Demandes").Range("F16")

                            ligne = ligne + 1

Sheets("Base").Cells(ligne, 1).Value = Sheets("Demandes").Range("C17")
Sheets("Base").Cells(ligne, 2).Value = Sheets("Demandes").Range("D17")
Sheets("Base").Cells(ligne, 3).Value = Sheets("Demandes").Range("E17")
Sheets("Base").Cells(ligne, 4).Value = Sheets("Demandes").Range("F17")

                            ligne = ligne + 1

Sheets("Base").Cells(ligne, 1).Value = Sheets("Demandes").Range("C18")
Sheets("Base").Cells(ligne, 2).Value = Sheets("Demandes").Range("D18")
Sheets("Base").Cells(ligne, 3).Value = Sheets("Demandes").Range("E18")
Sheets("Base").Cells(ligne, 4).Value = Sheets("Demandes").Range("F18")

 Range("DEMANDES_EN_COURS").Value = ""


End Sub
 
Dernière édition:

néné06

XLDnaute Accro
Re : Simplification code VBA - incrémentation base de données

Bonsoir Max.lander

Je n'ai pas testé mais je pense que cela doit fonctionner

ligne = Sheets("Base Congés").Range("a65536").End(xlUp).Row + 1
For J= 14 to 18
For i = 1 to 4
Sheets("Base").Cells(ligne, i).Value = Sheets("Demandes").Cells(j,i+2)

next i
ligne = ligne + 1
next j

Range("DEMANDES_EN_COURS").Value = ""

A+
 

Staple1600

XLDnaute Barbatruc
Re : Simplification code VBA - incrémentation base de données

Bonsoir


Testes la macro ci-dessous et dis moi si j'ai bon ;)
Code:
Sub test()
Dim ligne As Long, i
ligne = Sheets("Base Congés").Range("a65536").End(xlUp).Row + 1
For i = 1 To 5
Sheets("Base").Cells(ligne, 1).Resize(, 4).Value = Sheets("Demandes").Range("C13").Offset(i).Resize(, 4).Value
ligne = ligne + 1
Next i
Range("DEMANDES_EN_COURS").Value = ""
End Sub

EDITION: Bonsoir néné06
 

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400