Créer un tableau en automatique

Résolu
flyfranky Messages postés 3 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 29 novembre 2007 - 28 nov. 2007 à 18:11
majo144 Messages postés 1 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 12 décembre 2007 - 12 déc. 2007 à 23:45
Bonjour 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 pensé au code mais je sais pas l'écrire.
n=0
dans la case active ci dessus = n+1
if n/fréquence de brassage=entier then
   faire une croix dans case active.offset(1,0)
   else fond gris pour la case
if n/fréquence d'aspect = ......
le faire pour toute les lignes du tableau.
recommencer jusqu'à n=nombre de bac-1

je remercie d'avance toute les personnes qui regarderont cette question.
je remercie encore plus les personnes qui m'aideront.

a+

4 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
29 nov. 2007 à 12:17
Salut !
si je ne me trompe pas je crois que tout simplement c'est dû à ta numérotation de cellulle excell en effet la premiere cellule d'une feuille est : cells(1,1)  si tu mets une cells(x,0) tu te retrouves en dehors de la feuille d'où l'erreur
je ne suis pas un expert mais regardes de ce coté là
3
flyfranky Messages postés 3 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 29 novembre 2007
29 nov. 2007 à 12:04
Voici le début de mon code mais ça plante là où c'est rouge ...

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, où je mets 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
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

Si vous avez une idée du pourquoi, merci de me le dire.

a+
0
flyfranky Messages postés 3 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 29 novembre 2007
29 nov. 2007 à 13:55
c'est exactement ça. je suis une prune moi
je te remercie.
Sinon  quelqu'un à des idées pour améliorer mon programme?
0
majo144 Messages postés 1 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 12 décembre 2007
12 déc. 2007 à 23:45
je suis ex artisan maçon à la retraite en activiter pour les enfants et sur un chantier de 6 maison hautement hénergetique et veut rester informer de tous se qui se passe dans le batiment cordialement jojo
0
Rejoignez-nous