Macro pour sélection d'une colonne sur 3

Résolu
Sousha -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
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.
Configuration: Windows Vista Internet Explorer 7.0, Office 2007

1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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

    0
    1. Sousha
       
      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
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > 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"
        0