Besoin d'aide pour manipuler une maccro !

  • Initiateur de la discussion Initiateur de la discussion Rgargot
  • Date de début Date de début

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 !

Rgargot

XLDnaute Nouveau
Bonjour,

Voilà je vous explique mon problème. Je dois ajouter 8 lignes à chaque changement de valeur d'un tableur excel déjà existant. Seulement celui ci comporte 1500 lignes. Je me suis donc penché sur les macros et j'ai trouvé ceci qui m’intéresse :
Option Explicit

Sub saut_semaine()
Dim i As Long
Dim dat
With Me
dat = .Range(.Cells(1, 3), .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row, 3)).Value
End With
For i = UBound(dat, 1) To 3 Step -1
If dat(i, 1) <> dat(i - 1, 1) Then
Rows(i).Insert Shift:=xlDown
Rows(i).Insert Shift:=xlDown
End If
Next i
End Sub

Seulement je ne peux pas la remanier puisque je ne comprend pas.
Je n'ai aucune connaissance sur ce sujet, mais j'aimerais que les lignes ajoutées suivent un format précis, sachant que les huit sont différentes mais qu'une seule colonne a besoin d'être rempli. (contenu et fond de couleur par exemple). Si quelqu'un peut m'expliquer comment faire cette macro, je vous remercie d'avance.
 
Re : Besoin d'aide pour manipuler une maccro !

Bonsoir à tous

Rgargot (Bienvenue sur le forum)Tu peux joindre un fichier exemple, stp
Comme on vient de t'inviter à le faire ...mais malheureusement tes lunettes étaient reste sur ta table de chevet 😉
NouvelleDiscuss.jpg
 

Pièces jointes

  • NouvelleDiscuss.jpg
    NouvelleDiscuss.jpg
    38.4 KB · Affichages: 54
  • NouvelleDiscuss.jpg
    NouvelleDiscuss.jpg
    38.4 KB · Affichages: 58
Re : Besoin d'aide pour manipuler une maccro !

Re


En attendant, vois si cette macro t'inspire
(Dans un classeur vierge, saisis des quelques valeurs différentes dans la colonne A puis lances la macro ci-dessous
Code:
Sub a()
Dim X$, i&, r&
Do
    r = r + 1
    If r > 1 And X <> Cells(r, 1) Then
        If IsEmpty(Cells(r, 1)) Then Exit Do
        For i = 1 To 8
            Rows(r).Insert -4121
        Next
        r = r + 8
    End If
    X = Cells(r, 1)
Loop
End Sub
Est-ce que le résultat obtenu ressemble à ce que tu veux faire ?
 
Re : Besoin d'aide pour manipuler une maccro !

En effet c'est le résultat que j'espérais. Maintenant est-ce possible que ces lignes contiennent des éléments ? Comme par exemple une couleur de fond et 8 critères ?

Merci de ta réponse si rapide !
 
Re : Besoin d'aide pour manipuler une maccro !

Re

Crées un fichier exemple pour illustrer ta question.
Sinon sur quoi allons-nous tester nos propositions?
Pour le moment , mon code insère des lignes vides (faute de fichier à se mettre sous la dent 😉 )
 
Re : Besoin d'aide pour manipuler une maccro !

Il porte sur un document unique qui recense la pénibilité au travail. Je suis en stage en RH et je dois réaliser des MAJ, seulement je pense que mon maitre de stage ne voit pas de soucis à ajouter 8 lignes sur 1500 critères différents.

Puis-je te communiquer ces éléments demain ?

En tout cas merci, tu me sauves la vie =)
 
Re : Besoin d'aide pour manipuler une maccro !

Re

[aparté]
Allons, allons
Ceux qui ont vraiment besoin qu'on leur sauve la vie sont en Syrie ou ailleurs dans toute zone de conflit...
Notamment les enfants ...

[/aparté]

Si tu joins un fichier exemple, prends soin de l'anonymiser avant de le joindre.
Tu ne peux pas créer de mémoire là maintenant un petit fichier exemple de quelques lignes avec tes formats et couleurs à reproduire ?
 
Re : Besoin d'aide pour manipuler une maccro !

Voilà l'exemple. Il est normal que les colonnes précédentes soit vides. Ce qui amène un autre question : est il possible de demander à répéter le contenu du champ qui précède les sauts de lignes ? Je ne souhaite pas le faire, c'est juste une question 😉
 

Pièces jointes

Re : Besoin d'aide pour manipuler une maccro !

Re


Essaies la même macro modifiée en conséquence
(Je te laisse trouver où se situe le changement)
Code:
Sub b()
Dim X$, i&, r&
Do
    r = r + 1
    If r > 1 And X <> Cells(r, "I") Then
        If IsEmpty(Cells(r, "I")) Then Exit Do
        For i = 1 To 8
            Rows(r).Insert -4121
        Next
        r = r + 8
    End If
    X = Cells(r, "I")
Loop
End Sub
 
Re : Besoin d'aide pour manipuler une maccro !

Re

Cela fonctionne sur mon PC 😉 avec ton fichier exemple!
(Dans ton fichier exemple, les données sont en colonne I... et sur ton PC dans quelle colonne ?)

Sinon pour remplir avec les valeurs, la même macro avec une modif et un léger défaut en fin de course.
Code:
Sub c()
Dim X$, i&, r&, Y&
Dim p As Range
Set p = Range(Cells(1, "I"), Cells(Rows.Count, "I").End(xlUp))
Y = (p.Rows.Count * 8) + p.Rows.Count
Do
    r = r + 1
    If r > 1 And X <> Cells(r, "I") Then
        If IsEmpty(Cells(r, "I")) Then Exit Do
        For i = 1 To 8
            Rows(r).Insert -4121
        Next
        r = r + 8
    End If
    X = Cells(r, "I")
Loop
Cells(1, "I").Resize(Y).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
With Cells(1, "I").CurrentRegion
    .Value = .Value
End With
End Sub
 
Re : Besoin d'aide pour manipuler une maccro !

Effectivement c'était une erreur de ma part ! C'est l'utilisateur et pas la machine 😉

Pour la répétition c'est bon ! Je vais raccrocher pour ce soir. Je reviens vers toi demain, si bien sur ça ne dérange pas ! Dans tout les cas un grand merci pour l'aide que tu m'apportes, avec efficacité et rapidité en prime !

Puisque demain j'aurais besoin de ton aide pour mettre en forme les lignes à répéter ? Si c'est possible ? Peux tu me communiquer ton adresse mail en message privée pour que je puisse t'envoyer le fichier si tu le veux bien ? ça m'embete de le balancer sur le forum ... Mais si tu préfères que je le balance sur le forum, pas de soucis, je le supprimerai dès que l'a.

Bonne soirée et merci, ça fait toujours plaisir de tomber sur des personnes bienveillantes, même sur PC 😉
 
Re : Besoin d'aide pour manipuler une maccro !

Re

Peux tu me communiquer ton adresse mail en message privée pour que je puisse t'envoyer le fichier si tu le veux bien ? ça m'embete de le balancer sur le forum ...
L'essence d'un forum d'entraide est que les questions se posent et se résolvent sur le forum
(pas en en peer to peer)
Tu as du remarqué que tu ne pouvais pas m'envoyer de MP donc pour le mail ... 😉
Quant à ton fichier, encore une fois, on ne poste jamais sur le forum un fichier ORIGINAL.
On prends le temps de créer un fichier exemple avec des données bidons (mais qui reflète la réalité du classeur: même type de données (numériques ou textuelles, même structure de classeur, de formats etc..)
Et ce classeur n'a donc pas besoin d'être supprimé (ce qui d'ailleurs permets que le fil reste compréhensible dans la durée)

PS: Je ne suis pas le seul membre de ce forum (fort heureusement!), donc ne t'adresses pas qu'à moi en particulier 😉.
D'autres membres du forum viendront te filer un coup de main ... ou pas 😉
 
Re : Besoin d'aide pour manipuler une maccro !

Bonjour !

J'ai donc retravaillé mon document pour que l'exemple soit profitable à tous !
Dans cet exemple il faudrait créer une macro qui permette de répéter les lignes 3 à 10. Soit les 8 lignes qui sont en majorité grisées.
En gros dès que la valeur de la colonne C varie il faut, le tout sur 8 lignes :
- répétitions de la colonne C
- case grisée comme sur l'exemple
- case bordeaux clair comme sur l'exemple
- répétition des huit facteurs (bruit, charges, etc.) dans cet ordre.
- les croix ne sont pas à répéter, elles sont juste là à titre d'illustration.

Est-ce possible sachant qu'il y 1500 valeurs de C différentes et beaucoup de formules complexes dans le document?

Sincèrement,
Romain Gargot. 🙂
 

Pièces jointes

- 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
707
Réponses
8
Affichages
650
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour