IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer un tableau en automatique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut Créer un tableau en automatique
    Slt tous le monde,

    Débutant en VBA, j'ai besoin d'aide (et pas qu'un peu).
    J'ai fait un tableau de façon manuelle pour definir quand faire un controle mais aujourd'hui on me demande de faire ça pour tous les produits de l'entreprise.Voici un echatillon de l'ancien.

    Aujourd'hui, je voudrais faire une base de données, sous la forme ci dessous, et qu'il remplisse le tableau à ma place plus bas dans la page(pas folle la bête).

    j'ai commencer un petit code mais il plante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Sub tableau()
    Dim n As Integer
    Dim tableau As Range
    Dim freq As Range
    Dim controle As Range
    Dim nbbac As Integer
    Dim c As Integer
    Dim Ws As Worksheet
     
    'il faudra penser à faire une fonction recherche après
    Set freq = Worksheets("test").Range("b3")
        nbbac = Worksheets("test").Range("i3")
     
    'créer une feuil avec le nom de l'embout ou la supprimer pour la refaire
       For Each Ws In ActiveWorkbook.Worksheets
           If Ws.Name = freq.Offset(0, -1).Value Then
               Ws.Delete
               Exit For
           End If
       Next
       Sheets.Add
       ActiveSheet.Name = freq.Offset(0, -1)
     
    'après avoir créer la feuille, je crée le tableau
    Set controle = Worksheets("test").Range("b2")
    Set tableau = Worksheets(freq.Offset(0, -1).Value).Cells(5, 1)
     
    c = 0
    n = 0
        Worksheets(freq.Offset(0, -1).Value).Cells(5, 0).Value = " Bac "
        Worksheets(freq.Offset(0, -1).Value).Cells(6, 0).Value = controle
        Worksheets(freq.Offset(0, -1).Value).Cells(7, 0).Value = controle.Offset(0, 1)
        Worksheets(freq.Offset(0, -1).Value).Cells(8, 0).Value = controle.Offset(0, 2)
        Worksheets(freq.Offset(0, -1).Value).Cells(9, 0).Value = controle.Offset(0, 3)
        Worksheets(freq.Offset(0, -1).Value).Cells(10, 0).Value = controle.Offset(0, 4)
        Worksheets(freq.Offset(0, -1).Value).Cells(11, 0).Value = controle.Offset(0, 5)
        Worksheets(freq.Offset(0, -1).Value).Cells(12, 0).Value = controle.Offset(0, 6)
     
    'pour toutes les colonnes, je crée les croix (ou le grisement sinon plus tard)
    For i = 1 To nbbac
        tableau.Offset(0, c).Value = n + 1
        If n Mod freq = 0 Then
            tableau.Offset(1, c).Value = "x"
        End If
        If n Mod freq.Offset(0, 1) = 0 Then
            tableau.Offset(2, c).Value = "x"
        End If
        If n Mod freq.Offset(0, 2) = 0 Then
            tableau.Offset(3, c).Value = "x"
        End If
        If n Mod freq.Offset(0, 3) = 0 Then
            tableau.Offset(4, c).Value = "x"
        End If
        If n Mod freq.Offset(0, 4) = 0 Then
            tableau.Offset(5, c).Value = "x"
        End If
        If n Mod freq.Offset(0, 5) = 0 Then
            tableau.Offset(6, c).Value = "x"
        End If
        If n Mod freq.Offset(0, 6) = 0 Then
            tableau.Offset(7, c).Value = "x"
        End If
    n = n + 1
    c = c + 1
     
    'on recommence jusqu'au dernier bac
    Next
    End Sub
    je remercie d'avance toute les personnes qui regarderont cette question.
    je remercie encore plus les personnes qui m'aideront.

    a+
    Images attachées Images attachées   

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    j'ai trouvé une partie de mon erreur.
    j'avais mis colonne 0 ce qui est un peu embetant mais je continu ma recherche
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Besoin d'aide pour créer un tableau qui va incrémenter automatiquement des onglets
    Par Bernardini dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/02/2015, 17h40
  2. Créer un tableau 2colonnes de 2 types différents ?
    Par lilou77 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 27/10/2005, 12h09
  3. Réponses: 14
    Dernier message: 13/10/2005, 12h55
  4. [Info]Créer un tableau de String à partir d'autres String
    Par Nasky dans le forum Collection et Stream
    Réponses: 21
    Dernier message: 06/07/2005, 11h46
  5. [XSLT] Créer un tableau à partir de sa description
    Par Skyou dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 20/03/2005, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo