Créer des feuilles excel à partir d'une liste+données

sof_011 Messages postés 3 Statut Membre -  
 sof_011 -
Bonjour à tous,

J'essaye de créer des feuilles Excel à partir d'une liste en copiant en même tant les données correspondantes à un nom de ma liste.
J'ai utilisé la macro suivante mais elle ne fonctionne pas.
Pourriez-vous comment je peux modifier la ligne en gras pour que cela fonctionne.

Sub Macro3()
'
' Macro3 Macro
' Dim nom, c
For Each c In Range("liste")
nom = c.Value
Sheets("Feuil1").Select
Range("A1:I1,A"c":I"c").Select
Selection.Copy
Sheets.Add After:=Worksheets(Worksheets.Count)
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveSheet.Name = nom
Next c

End Sub

je voudrais copier en plus de plage A1:I1 la plage correspondant au nom pour lequel je crée la nouvelle feuille.
J'espère que ma demande est suffisamment claire.
Merci d'avance pour votre aide.

4 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour,

    Essaie

    Range("A1:I1,"A" & c & ":I" & c ).Select

    Cdlmnt
    1
  2. sof_011 Messages postés 3 Statut Membre
     
    Bonjour,

    je viens de copier votre ligne mais... non ça ne fonctionne pas :-(
    Lorsque je veux exécuter la macro, le débogueur se lance et indique erreur de syntaxe.
    Merci quand même d'avoir répondu. Et si vous avez une autre idée n'hésitez pas.

    bàv
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Oui dsl il était resté un guillemet en trop (entre la , et le A)

      Bonne ligne :
      Range("A1:I1,A" & c & ":I" & c).Select

      Cdlmnt
      0
    2. sof_011 Messages postés 3 Statut Membre
       
      Malheureusement ça ne va pas non plus :-(
      0
    3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      comprends pas

      chez moi cela fonctionne
      0
  3. foo
     
    Bonjour

    essais

    Range("A1:I" & C).Copy

    A+

    Maurice
    0
  4. sof_011
     
    Bonjour,

    A Maurice: je suis désolée mais non ça ne fonctionne pas.

    A Via55: vous me dites que cela fonctionne chez vous :-(
    pourquoi pas chez moi?
    Je mets en la copie complète de ma macro, voulez-vous bien vérifier que toutes nos lignes sont identiques, s'il vous plait. Je sais que je suis près du but mais il y a quelque chose qui coince.

    Merci pour votre aide à tous les 2

    Sub Macro3()
    '
    ' Macro3 Macro
    ' Dim nom, c
    For Each c In Range("liste")
    nom = c.Value
    Sheets("Feuil1").Select
    Range("A1:I1,A" & c & ":I" & c).Select
    Selection.Copy
    Sheets.Add After:=Worksheets(Worksheets.Count)
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
    ActiveSheet.Name = nom
    Next c

    End Sub
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour,

      Les variables dans Liste étant vraisemblablement du texte ne peuvent être utilisées dans les références du Range
      Il faut utiliser une variable n qui relève le N° de la ligne : n = c.Row

      D'autre part pour sélectionner la ligne n la syntaxe sera plutôt ;
      Range("A" & n & ":I" & n).Select

      et pour sélectionner de la ligne 1 à la ligne n
      Range("A1 & ":I" & n).Select

      Un exemple qui fonctionne
      https://www.cjoint.com/?0Kcozkun09S

      Cdlmnt
      0
    2. sof_011
       
      Et bien voilà :-)

      Un tout grand merci pour votre aide.
      C'est vraiment gentil.

      Bon w-e.
      0