Macro pour division d'une donnée sur plusieurs lignes
Résolu/Fermé
Edoardo
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2014
-
Modifié par Edoardo le 30/10/2014 à 17:05
Edoardo - 2 avril 2015 à 18:49
Edoardo - 2 avril 2015 à 18:49
A voir également:
- Macro pour division d'une donnée sur plusieurs lignes
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Comment aller à la ligne sur excel - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel trier par ordre alphabétique en gardant les lignes - Guide
8 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
31 oct. 2014 à 11:35
31 oct. 2014 à 11:35
Voici le code.
Essaye le au préalable sur une copie de ton fichier.
Si trop lent ou en cas d'erreur, reviens me dire ce qu'il en est...
Essaye le au préalable sur une copie de ton fichier.
Si trop lent ou en cas d'erreur, reviens me dire ce qu'il en est...
Option Explicit Sub Annee_Mois() Dim Tb_Donnees(), Lig As Long, DLig As Long, Lignes As Integer DLig = Range("A" & Rows.Count).End(xlUp).Row Tb_Donnees = Range("A2:O" & DLig).Value For Lig = UBound(Tb_Donnees) To LBound(Tb_Donnees) Step -1 If Tb_Donnees(Lig, 10) <> "A ENGAGER" And UCase(Tb_Donnees(Lig, 14)) = "ANNEE" Then Rows(Lig + 2 & ":" & Lig + 12).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove For Lignes = 1 To 12 Cells(Lig + Lignes, 1) = Tb_Donnees(Lig, 1) Cells(Lig + Lignes, 2) = Tb_Donnees(Lig, 2) Cells(Lig + Lignes, 3) = Tb_Donnees(Lig, 3) Cells(Lig + Lignes, 4) = Tb_Donnees(Lig, 4) Cells(Lig + Lignes, 5) = Tb_Donnees(Lig, 5) Cells(Lig + Lignes, 6) = Tb_Donnees(Lig, 6) Cells(Lig + Lignes, 7) = Tb_Donnees(Lig, 7) Cells(Lig + Lignes, 8) = Tb_Donnees(Lig, 8) Cells(Lig + Lignes, 9) = Tb_Donnees(Lig, 9) Cells(Lig + Lignes, 10) = Tb_Donnees(Lig, 10) / 12 Cells(Lig + Lignes, 11) = Tb_Donnees(Lig, 11) Cells(Lig + Lignes, 12) = Tb_Donnees(Lig, 12) Cells(Lig + Lignes, 13) = Tb_Donnees(Lig, 13) Cells(Lig + Lignes, 14) = UCase(Format(DateSerial(2014, Lignes, 1), "mmmm")) Cells(Lig + Lignes, 15) = Tb_Donnees(Lig, 15) Next End If Next End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
30 oct. 2014 à 16:24
30 oct. 2014 à 16:24
Bonjour,
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Edoardo
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2014
30 oct. 2014 à 17:05
30 oct. 2014 à 17:05
Merci beaucoup, fichier intégré !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
30 oct. 2014 à 17:48
30 oct. 2014 à 17:48
oui. ok. Mais il est ou le lien???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Edoardo
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2014
30 oct. 2014 à 17:54
30 oct. 2014 à 17:54
Dans mon 1er message. Le voici https://www.cjoint.com/?DJErkiu7CbR
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 31/10/2014 à 08:28
Modifié par pijaku le 31/10/2014 à 08:28
Bonjour,
J'ai regardé votre fichier, il ne correspond pas à ce que l'on attend. Il faudrait qu'il soit constitué d'une cinquantaine de lignes et de la même manière que votre fichier actuel. Nul besoin de nous mettre ce que vous attendez de la macro, ça nous avons compris.
De plus, il nous faut savoir ou se situent les mots "ANNEE". Peut-on le trouver entre deux mois autres que Décembre et Janvier?
EDIT : en clair le fichier transmis doit être conforme à votre fichier, dans son état actuel. Mais sans données confidentielles...
🎼 Cordialement,
Franck 🎶
J'ai regardé votre fichier, il ne correspond pas à ce que l'on attend. Il faudrait qu'il soit constitué d'une cinquantaine de lignes et de la même manière que votre fichier actuel. Nul besoin de nous mettre ce que vous attendez de la macro, ça nous avons compris.
De plus, il nous faut savoir ou se situent les mots "ANNEE". Peut-on le trouver entre deux mois autres que Décembre et Janvier?
EDIT : en clair le fichier transmis doit être conforme à votre fichier, dans son état actuel. Mais sans données confidentielles...
🎼 Cordialement,
Franck 🎶
Edoardo
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2014
Modifié par Edoardo le 31/10/2014 à 10:10
Modifié par Edoardo le 31/10/2014 à 10:10
Merci beaucoup pour votre réponse.
Voici le nouveau fichier : il est conforme à cela près que mon fichier comporte un millier de lignes contre l'échantillon joint.
Et, oui, "année" peut apparaître à n'importe quel moment dans la colonne "Mois".
https://www.cjoint.com/?DJFknkoR1LP
Voici le nouveau fichier : il est conforme à cela près que mon fichier comporte un millier de lignes contre l'échantillon joint.
Et, oui, "année" peut apparaître à n'importe quel moment dans la colonne "Mois".
https://www.cjoint.com/?DJFknkoR1LP
Edoardo
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2014
31 oct. 2014 à 12:17
31 oct. 2014 à 12:17
C'est tout bonnement magique !! Testé dans un fichier isolé puis dans mon fichier de travail et cela marche parfaitement. Le traitement prend environ 1 minute pour l'ensemble des lignes ce qui est plus que raisonnable !!!
merci BEAUCOUP !!!!!!
merci BEAUCOUP !!!!!!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
31 oct. 2014 à 12:20
31 oct. 2014 à 12:20
Si cela convient c'est le principal.
De rien.
A+
De rien.
A+
2 avril 2015 à 18:49