Balayer une ligne et créer une boucle

rs4 Messages postés 1 Date d'inscription   Statut Membre -  
 rs4 -
Bonjour,

je suis super débutant et je souhaite créer une macro qui effectu un balayage sur une ligne de la cellule A1 à A15 par exemple.

si A1 contient une valeur alors créer un nouvel onglet et le nommer avec le contenu de la cellule A2.

sinon si A1 ne contient rien alors passer à la ligne suivante.

Voilà pour le début si vous pouvez m'aider ca serait super.

merci d'avance.
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Petite rectification, le mot clé Empty n'est valable que pour une variable Variant.
    Et un pti coup de main pour la macro...
    Sub gg()
    
    Dim Cell As Range
        Sheets("feuil1").Select
        Range("A1:A15").Select
        For Each Cell In Selection
            If Cell.Value <> "" Then
                Sheets.Add
                ActiveSheet.Name = Cell.Value
            End If
        Next Cell
    End Sub

    A+
    2
    1. rs4
       
      Tout d'abord merci pour vos réponses ca m'aide énormément.

      Si je peux abuser je souhaite affiner le point suivant :

      - Comment rajouter une variable dans mon programme, partons du principe qu'une des colonnes de mon tableau se nomme FOURNISSEUR.

      FOURNISSEUR RESERVES CAUSES
      X oui retard
      Y

      Si la cellule RESERVES contient quelque chose alors création d'un onglet que l'on nomme non plus par le contenu de la cellule en question mais par le nom du fournisseur concerné.

      et ce toujours sur la première macro.

      Merci d'avance
      0
  2. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Salut rs4,

    'Pour balayer ta plage A1:A15, utilise For each ... Next
    Dim Cellule as range
    Range("A1:A15").select
    For each Cellule in selection
    '(instructions)
    Next Cellule

    'pour tester qu'une cellule n'est pas vide
    if Not Cellule.value = empty then
    '(instructions)
    end if

    'pour créer et nommer un onglet : vois ce que ça donne avec Outils/Macro/Nouvelle Macro

    Avec ça, même super débutant, tu devrais résoudre ton problème.
    A suivre...
    1
  3. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    Salut,
    exactement le même principe que précédement (message de lermite) :
    sélectionne ta plage (colonne Réserves)
    Boucle For each ... next
    test If Cellule.value="Oui"
    sauf que le nom de ta nouvelle feuille sera Cellule.offset(0,-1).value (la valeur de la colonne -1)
    A suivre...
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    questions..
    1°) quel colonne pour FOURNISSEUR
    2°) le nom du fournisseur peut-il ,être trouver plusieur fois ? Si oui, créer d'autre feuilles pour ce fournisseur ? ou une seule.
    NB: pas possible de créer plusieur feuille avec le même nom
    0
    1. rs4
       
      Non, le nom du fournisseur n'apparait qu'une seule fois. c'est une des premières colonnes du tableau.

      Evidemment mon besoin ne s'arrête pas là, cette macro est loin d'être terminée.

      Si j'ai d'autres questions je n'hésiterai pas à vous consulter.

      Merci beaucoup
      0