Relier un prénom à un onglet en macro

Résolu
Valerie54001 Messages postés 147 Statut Membre -  
Valerie54001 Messages postés 147 Statut Membre -
Bonjour à tous,

Etant heureuse de l'aide donnée de façon récurrente, je viens vous solliciter une nouvelle fois avant les vacances.
L'idée de la macro que je souhaiterais, bien sur, si cela est possible, est tout simplement de déplacer chaque ligne dans un onglet approprié.

Sur chaque ligne, nous avons une date (colonne H), 2 prénoms (colonnes I et J) et un chiffre (colonne M).

La ligne 3 contient '' Pierre " et '' Marine" il faut la ranger sous les onglets ''Pierre" et "Marine" en A1.

La ligne 4 contient '' John " et '' Syvie" il faut la ranger sous les onglets ''Pierre" et "Marine" en A1.

etc.

Aussi il faut garder les couleurs.


https://www.cjoint.com/c/HGslyifHmNf

Qu'en dites vous ?
A voir également:

3 réponses

danielc0 Messages postés 1948 Statut Membre 238
 
Sinon, pour les doublons, essaie :

Sub test()
  Dim C As Range, Ligne As Long
  For i = 2 To Sheets.Count
    Sheets(i).[A:D].Clear
  Next i
  With Sheets("20172018")
    For Each C In .Range("H3", .Cells(.Rows.Count, 8).End(xlUp))
      If C.Value <> "" Then
        With Sheets(C.Offset(, 1).Value)
          Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
          If .[A1] = "" Then Ligne = 1
          C.Resize(, 3).Copy .Cells(Ligne, 1)
          C.Resize(, 3).Copy
          .Cells(Ligne, 1).PasteSpecial xlPasteValues
          C.Offset(, 5).Copy .Cells(Ligne, 4)
          C.Offset(, 5).Copy
          .Cells(Ligne, 4).PasteSpecial xlPasteValues
        End With
        With Sheets(C.Offset(, 2).Value)
          Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
          If .[A1] = "" Then Ligne = 1
          C.Resize(, 3).Copy .Cells(Ligne, 1)
          C.Resize(, 3).Copy
          .Cells(Ligne, 1).PasteSpecial xlPasteValues
          C.Offset(, 5).Copy .Cells(Ligne, 4)
          C.Offset(, 5).Copy
          .Cells(Ligne, 4).PasteSpecial xlPasteValues
        End With
      End If
    Next C
  End With
End Sub
1
Valerie54001 Messages postés 147 Statut Membre 1
 
Super, le problème de doublon est résolu !!
0
danielc0 Messages postés 1948 Statut Membre 238
 
Bonjour,

"La ligne 4 contient '' John " et '' Syvie" il faut la ranger sous les onglets ''Pierre" et "Marine" en A1"

Tu es sure ?

Daniel
0
Valerie54001 Messages postés 147 Statut Membre 1
 
Bonjour danielco,

Que je suis gourde parfois, j'ai copié collé sans corrigé.

Donc La ligne 4 contient '' John " et '' Sylvie" il faut la ranger sous les onglets ''John" et "Sylvie" en A.

Merci...
0
danielc0 Messages postés 1948 Statut Membre 238
 
Essaie :

Sub test()
Dim C As Range, Ligne As Long
With Sheets("20172018")
For Each C In .Range("H3", .Cells(.Rows.Count, 8).End(xlUp))
If C.Value <> "" Then
With Sheets(C.Offset(, 1).Value)
Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
If .[A1] = "" Then Ligne = 1
C.Resize(, 3).Copy .Cells(Ligne, 1)
C.Resize(, 3).Copy
.Cells(Ligne, 1).PasteSpecial xlPasteValues
C.Offset(, 5).Copy .Cells(Ligne, 4)
C.Offset(, 5).Copy
.Cells(Ligne, 4).PasteSpecial xlPasteValues
End With
With Sheets(C.Offset(, 2).Value)
Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
If .[A1] = "" Then Ligne = 1
C.Resize(, 3).Copy .Cells(Ligne, 1)
C.Resize(, 3).Copy
.Cells(Ligne, 1).PasteSpecial xlPasteValues
C.Offset(, 5).Copy .Cells(Ligne, 4)
C.Offset(, 5).Copy
.Cells(Ligne, 4).PasteSpecial xlPasteValues
End With
End If
Next C
End With
End Sub


Daniel
0
Valerie54001 Messages postés 147 Statut Membre 1
 
Donc c'était bien possible !!

J'ai rajouté des nouveaux prénoms, je rencontre 2 soucis :
- Aprés avoir rajouté des prénoms j'ai le debuggeur qui s’arrête à <<With Sheets(C.Offset(, 1).Value)>>
- La macro s'effectue tellement bien qu'à chaque fois cela me fait des doublons lorsque je rajoute un prénom ( avec son onglet associé)



Peux-tu enlever les doublons, stp ?
0
danielc0 Messages postés 1948 Statut Membre 238
 
Quel est le message d'erreur sur cette ligne ?
0
Valerie54001 Messages postés 147 Statut Membre 1
 
Corrigé sur le fichier test :)
0