Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
898
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…