Macro insertion x cellules selon valeur donnée

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 !

Albadros

XLDnaute Nouveau
Bonjour,

Après de nombreux essais infructueux, je me tourne vers vous.
Dans le cadre de mon mémoire, je traite des données enregistrées à la suite d'une expérimentation.

J'ai 10 colonnes de valeurs. Ces colonnes ne sont pas synchronisées, il faut donc que j'insère "x" cellules vides dans la colonne B, "y" cellules vides dans la colonne C, etc... pour mes 10 colonnes.

Ce nombre de cellules est différent pour chaque colonne.
Donc, ce qu'il me faudrait c'est 10 cases que je remplis en fonction de mes besoins :

Colonne : 1 2 3 4 5 6 7 8 9 10
Cellules à insérer : 3 5 0 2 1 etc....

Et que en fonction de cette valeur (3) il insère 3 cellules vides au début de la colonne.

Voila, si quelqu'un peut m'aider cela serait génial. J'ai 1200 fichiers à traiter ainsi ^^
Merci d'avance !
 
Re : Macro insertion x cellules selon valeur donnée

Bonsoir Albadros et bienvenue,

Albadros, z'est un voladile enrhubé?

Pour ta demande, tu ne précises pas si tu préfères une solution par formule ou par macro (bien que, si tu en as 1200, on puisse avoir sa petite idée).
D'autre part, le nombre de cellules à insérer est différent pour chaque colonne, mais il sera le même d'un fichier à l'autre? Pourquoi indiquer le nombre de cellules de décalage dans d'autres cellules?
 
Re : Macro insertion x cellules selon valeur donnée

Voila j'apporte quelques infos supplémentaires.

Oui sous forme de Macro, cela me semble plus adapté.

Voici a quoi ressemble le fichier de base :

Click for large view - Uploaded with Skitch

et à quoi il doit ressembler après :

Click for large view - Uploaded with Skitch


Pour répondre à la question. Ce sont 1200 fichiers, et je dois appliquer les memes modifications sur 10 fichiers à chaque fois. (correspondant à un des 16 sujets, et une des 8 directions)


Le tableau dans lequel je mets le nombre de case, ici je l'ai fait horizontal, mais il peut etre comme dans l'exemple de jpb388 : vertical.

J'ai mis un futur bouton pour la macro car je garde le fichier et je colle a chaque fois les valeurs dans le meme fichier, je clique sur le bouton et cela se ferait tout seul 😛


(et pour répondre à Modeste : Non non c'est un oizeau qui a fè une fôte d'orthograf quand il était plus jeune, et qui malgré tout, a gardé ce pseudo 😛 Il y a bien trop de "Albatros" sur le net 😛 )
 
Re : Macro insertion x cellules selon valeur donnée

Bonjour Albadros, jpb388,

Comme souvent, les précisions apportées dans ton second message auraient pu l'être d'entrée de jeu (et je ne parle pas de ton pseudo!)

Une autre proposition en pièce jointe. Avec deux codes différents, tu devrais pouvoir adapter sans trop de difficultés, mais reviens nous dire, si tu as des questions.
 

Pièces jointes

Re : Macro insertion x cellules selon valeur donnée

Bonsoir !

Désolé de ne répondre que maintenant (par rapport à ton MP Modeste), j'avais cours toute la journée, et me voila enfin sur mon ordi. ^^

Alors je l'ai essayé, cela me semble parfait.
Je vais essayer de l'inclure dans mon fichier "de base" (j'ai analysé la macro et j'ai vu comment la modifier si je mets mes cases à remplir sur une autre ligne (la ligne 14 est en plein milieu du graphe) ).

Mais elle fait exactement ce que je souhaitais donc merci beaucoup beaucoup !

Et encore désolé de ne pas avoir donné toutes les infos directement, je pensais m'etre fait comprendre 😉
 
Re : Macro insertion x cellules selon valeur donnée

Je viens juste de tomber sur un petit soucis : Si dans une case, je ne dois pas la déplacer une colonne et que je mets soit rien soit 0, la macro plante et m'envoie vers le débuggeur. Sinon aucun soucis pour l'implanter dans mon fichier de base comme expliqué plus tot. 🙂
 
Re : Macro insertion x cellules selon valeur donnée

Bonjour,

En effet, un "Resize" de ... 0 lignes n'est pas possible!
Ce que tu ne dis pas, par ailleurs, c'est si tu as trouvé comment modifier le code, pour éviter cet écueil? Un petit "If" devrait suffire, mais faut-il t'en dire plus? L'as-tu déjà implémenté?
 
Re : Macro insertion x cellules selon valeur donnée

Non, quand j'ai un 0, je met un 1 et je supprime la cellule juste après la macro.

Sub Decalage_des_cellules()
Application.ScreenUpdating = False
For I = 1 To 10
ActiveSheet.Cells(2, I + 1).Resize(Cells(36, 17 + I).Value, 1).Insert xlShiftDown
Next I
Application.ScreenUpdating = True
End Sub

Je ne sais pas ou placer mon If Value ... Je suis une gros débutant avec Visual.
 
Dernière édition:
Re : Macro insertion x cellules selon valeur donnée

Bonsoir Albadros,

Essaye ce qui suit:
VB:
Sub decaler()
Application.ScreenUpdating = False
For i = 1 To 10
    If Cells(24, 14 + i).Value > 0 Then ActiveSheet.Cells(2, i + 1).Resize(Cells(24, 14 + i).Value, 1).Insert xlShiftDown
Next i
Application.ScreenUpdating = True
End Sub
... et ne manque pas de nous dire ensuite ce qu'il en est 😉
 
Re : Macro insertion x cellules selon valeur donnée

Bonsoir Modeste,

Je te remercie du temps que tu as passé dessus et à me répondre sur ce topic, maintenant tout fonctionne comme il faut.

J'avais essayé le If mais dans l'autre sens : < 0 mais je l'avais pas placé au bon endroit non plus. ^^


Petite question encore, est-ce que tu as une astuce pour bloquer les Plages de données ( =Samples!$B$2:$B$101) de mon graphique car quand j'applique mon décalage de cellules, après 3-4 fichiers, je vois plus rien sur mon graphique car la plage de données est devenue (=Samples!$B$62:$B$161) alors que mes valeurs sont tjs entre B2 et B101 (ici je prends B mais toutes les plages de données pour chaque colonne varient)
 
Re : Macro insertion x cellules selon valeur donnée

Bonjour Albadros, le forum,

On travaille un peu à l'aveugle, avec juste tes deux images de départ. Ceci rend la compréhension de tes demandes un tantinet approximative ... Le code suivant redéfinit, après chaque décalage dans une colonne, la plage où la série concernée prend ses valeurs. Ici ce sera chaque fois de la ligne 2 à la ligne 101, pour chaque colonne. Ta phrase
ici je prends B mais toutes les plages de données pour chaque colonne varient
... me laisse perplexe et songeur 😕 Teste donc ce qui suit:

VB:
Sub decaler()
Application.ScreenUpdating = False
With ActiveSheet
    For i = 1 To 10
        If .Cells(24, 14 + i).Value > 0 Then .Cells(2, i + 1).Resize(.Cells(24, 14 + i).Value, 1).Insert xlShiftDown
        .ChartObjects(1).Chart.SeriesCollection(i).Values = "=Feuil1!R2C" & i + 1 & ":R101C" & i + 1
    Next i
End With
Application.ScreenUpdating = True
End Sub

J'ai considéré aussi qu'il n'y avait qu'un graphique, dans ta feuille!
 
- 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

  • Question Question
Power Query Power Query
Réponses
26
Affichages
649
Réponses
7
Affichages
849
Réponses
0
Affichages
348
Retour