Macro pour sélection d'une colonne sur 3

Résolu/Fermé
Signaler
-
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
-
Bonjour,

J'ai besoin de votre aide svp pour créer une macro qui sélectionne et copie des colonnes dans dans sur une autre feuille. Je dispose d'un tableau avec des colonnes de A à M. Le nombre de ligne peut varier mais pas celui des colonnes. sur la colonne A j'ai une liste de société et de B à M des mois glissants avec des chiffres pas société. Je voudrais créer une macro qui sélectionne la colonne A(les socétés), la colonne B et une colonne sur 3 à partir de la colonne B et ensuite les copie sur une autre feuille créée. Ce résultats sera les données des sociétés par trimestre. J'ai essayé de créer une macro mais à chaque exécution j'ai un message d'erreur: l'indice n'appartient pas à la sélection.

Sub test()

Dim Month, Quater As String
Dim C As Range

Sheets.Add
ActiveSheet.Name = "Quater"

Sheets("Month").Select
Range("A:A").Select
Selection.Copy
Sheets("Quater").Select
ActiveSheet.Paste

For Each C In Sheets("Month").Range("B:M")
'=1 Pour une colonne sur 3
If C.Column Mod 3 = 1 Then
C.Copy
Sheets("Quater").Select
ActiveSheet.Paste
End If
Next C
End Sub

Je cherche des solutions depuis des semaines mais en vain. J'ai besoin de votre aide pour y arrriver. Je vousremercie d'avance pour votre aide.

1 réponse

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 666
Bonjour,
Vous dites : et une colonne sur 3 à partir de B. C'est à dire B, E, H, K?

Sinon simplement adaptez ce code :

Dim i As Integer, j as Integer
Sheets.Add 
ActiveSheet.Name = "Quater" 
With Sheets("Month")
.Columns(1).Copy Sheets("Quater").Range("A1")
j = 2
For  i = 2 to 12 Step 3
.Columns(i).Copy Sheets("Quater").Cells(1, j)
j = j + 1
Next
End With

Bonjour,

Je vous remercie infiniment pour votre aide.
La maco marche bien. Cela faisait des jours que je cherchais la solution mais en vain. Grand merci.

Pourrais abuser une dernière fois de vos connaissance svp si vous me le permettez.

J'ai un graphe en Barre avec en abscisse des chiffre et en ordonnée des nom de société et le grand total.
Je cherche à colorier uniquement la barre correspondant au Grand Total en rouge et mon code ne marche pas.

Sub MAJCcyBOP()
Dim SheetInput As String, i As Variant

SheetInput = "Sheet 1"

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select
For Each i In ActiveChart.SeriesCollection(1).Points
If ActiveChart.Axes(xlValues).AxisLabel.Name = "Grand Total" Then
ActiveChart.SeriesCollection(1).Points(i).Select
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = 3
End If
Next i
End Sub

Je suis débutante et j'ai encore du mal.

Grand MERCI pour votre aide
Sousha
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 666 > Sousha
Malheureusement, je ne vais pas pouvoir vous aider... Nul en graph...
Néanmoins, rien ne vous empêche d'ouvrir un nouveau sujet car la question est différente.
Je place celui ci en "résolu"