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

Macro pour créer un BD depuis un planning...

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 !

Christian0258

XLDnaute Accro
Bonsoir à tout le forum,
Je souhaiterais votre aide pour écrire une macro. Cette macro devra créer, depuis la feuille "Planning", une base de données dans la feuille "Congés"....voir fichier

Je vous remercie, par avance, pour l'aide que vous voudrez bien vouloir m'accorder.

Bien amicalement,
Christian
 

Pièces jointes

Bonjour Christian

Mis à part quelques erreurs dans les deux feuilles (Regarde ta demande et où sont placés les x + le résultat dans la feuille congé).
Ce ne serait pas mieux de créer une feuille pour chaque mois? Parce-que 368 colonnes c'est énorme. 😱

VB:
Sub NomFeuilMois()
For I = 1 To 12
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Format(30 * I, "mmmm")
Next I
End Sub
 
Dernière édition:
Re, le forum, Lone-wolf
J'ai trouvé cette macro (de J.Boisgontier) mais je n'arrive pas à l'adapter à la position de mon tableau qui démarre en F32.
Par ailleurs les zéros de mon Planning me pose problème...

Sub CreeBD()
Application.ScreenUpdating = False
Set s = Sheets("Congés")
s.[A2:E1000].ClearContents
Set p = Sheets("Planning")
nbCol = 380
For ligne = 33 To 47
i = 2
Do While i <= nbCol
témoin = False
Do While p.Cells(ligne, i) = "" And i <= nbCol
If i = nbCol Then témoin = True
i = i + 1
Loop
If Not témoin Then
typeCongés = p.Cells(ligne, i)
début = p.Cells(2, i)
Do While p.Cells(ligne, i) = typeCongés And i <= nbCol
If i = nbCol Then témoin = True
i = i + 1
Loop
fin = p.Cells(2, i - 1)
ligneBD = s.[A65000].End(xlUp).Row + 1
s.Cells(ligneCongés, 1) = p.Cells(ligne, 1)
s.Cells(ligneCongés, 2) = début
s.Cells(ligneCongés, 3) = fin
s.Cells(ligneCongés, 4) = typeCongés
s.Cells(ligneCongés, 5) = fin - début + 1
End If
Loop
Next ligne
End Sub

Merci pour votre aide.
Cordialement.
Christian
 
- 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
7
Affichages
981
Réponses
8
Affichages
240
Réponses
3
Affichages
115
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…