flyfranky
Messages postés3Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention29 novembre 2007
-
28 nov. 2007 à 18:11
majo144
Messages postés1Date d'inscriptionmercredi 12 décembre 2007StatutMembreDernière intervention12 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.
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 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à
flyfranky
Messages postés3Date d'inscriptionmercredi 14 novembre 2007StatutMembreDernière intervention29 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)
'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.
majo144
Messages postés1Date d'inscriptionmercredi 12 décembre 2007StatutMembreDernière intervention12 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