|
|
|
|
Bonjour,
Depuis peux je travaille sous excel et plus precisement sous VBA.
Mon probleme est le suivant:
J ai une plage de données, je récupere les valeurs dont j ai besoin (tri...)
Dim tabCommande() As Commande
Private Type Commande
Client As String
NomProduit As String
Atelier As String
NumLot As String
NbPalette As Integer
DateFinFab As Date
Pharmacien As String
End Type
Configuration: Windows XP Firefox 2.0.0.7
Tu peux reformuler stp?
|
Desolé si c etait pas clair
la je comprends : j ai en feuil1 dans des cellules des noms, adresses, etc que je dois transferer en feuil2 dans 1 autre cellule pour editer une feuille d etiquettes. oui c est ça, j ai un tableau ac plusieur ligne et colonne dans la feuille 1. comment se presente la feuil1? comment se presente la feuil2? la feuille 1 contient un tableau et la feuille 2 n est pas creer. je la créé en appuyant sur un bouton en fonction de certaines donnees contenues de mon tableau. chaque ligne de mon tableau sera traité par un pharmacien et je vais creer une feuille par pharmacien. une fonction va formater la feuille 2 (colonnes et lignes) et va creer des petites etiquettes. dois tu incrementer automatiquement X cellules (x fixe) ou X variable? etc... ou peux tu faire ca de facon transparente (creer 1 variable contenant tous les champs mis en forme). y a trop de possibilités pour 1 reponse claire oui c est ca je créé une variable (de type tableau() de commande ci dessus) qui contient toutes les données necessaires. le probleme est que dans les feuilles créées, je n arrive pas a recuperer le tableau contenant mes donnees. voila j espere que c est plus clair |
Sub MaMacro()
|
J ai pas trop compris ce que tu avais fait O_o ou voulait faire mais j ai reussi a avancé. Je te remerci de t on aide.
sheets("feuille 2").Range("A1").Value = "plop" ça me marque bien "popo" dans la celule a1
Ci-dessous le code de la procedure:
Public Sub GenererEtiquette(pharmacien As String) ' pharmacien => nom de la feuille
Dim i, j, nbEtiquette, nbLigne As Integer
nbEtiquette = 3 ' nombre d etiquettes à creer
nbLigne = (Fix(nbEtiquette / 5) + 1) * 7
sheets(pharmacien).Range("A1").Value = "plop"
For i = 0 To nbLigne Step 7
For j = 0 To 20 Step 5
'Dessine le contour de la case de la 3eme ligne de l'étiquette
Range(Cells(i + 3, j + 2), Cells(i + 3, j + 4)).Borders.LineStyle = xlContinuous
'Fusionne les cellules des lignes 2, 3 et 4
Range(Cells(i + 2, j + 2), Cells(i + 2, j + 4)).Merge
Range(Cells(i + 3, j + 2), Cells(i + 3, j + 4)).Merge
Range(Cells(i + 4, j + 3), Cells(i + 4, j + 4)).Merge
'Dessine le contour et l'interieur de chaque étiquette
With Range(Cells(i + 1, j + 1), Cells(i + 7, j + 5)).Borders
.Item(xlEdgeBottom).Weight = xlThin
.Item(xlEdgeLeft).Weight = xlThin
.Item(xlEdgeTop).Weight = xlThin
.Item(xlEdgeRight).Weight = xlThin
End With
'Les lignes du nom du client
With Range(Cells(i + 2, j + 2), Cells(i + 2, j + 4))
.Font.Name = "Times New Roman"
.Font.Size = 14
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignTop
End With
'Les lignes du nom du produit
With Range(Cells(i + 3, j + 2), Cells(i + 3, j + 4))
.Font.Name = "Times New Roman"
.Font.Size = 10
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignTop
End With
'Les lignes du n° du lot
With Range(Cells(i + 4, j + 3), Cells(i + 4, j + 4))
.Font.Name = "Times New Roman"
.Font.Size = 12
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignTop
End With
'Les lignes du nombre de palettes
With Cells(i + 5, j + 3)
.Font.Name = "Times New Roman"
.Font.Size = 14
.HorizontalAlignment = xlHAlignRight
.VerticalAlignment = xlVAlignTop
End With
'hauteur de la 1ere ligne
With Range(Cells(i + 1, j + 1), Cells(i + 1, j + 1))
.RowHeight = 3.4
End With
'hauteur de la 7eme ligne
With Range(Cells(i + 7, j + 1), Cells(i + 7, j + 5))
.RowHeight = 3.4
End With
'Largeur et hauteur des lignes 2 et 3 (sans les colonnes 1 et 5)
With Range(Cells(i + 2, j + 2), Cells(i + 3, j + 4))
.RowHeight = 26.5
.ColumnWidth = 4.5
End With
'Largeur et hauteur de la lignes 4 (sans les colonnes 1 et 5)
With Range(Cells(i + 2, j + 2), Cells(i + 3, j + 4))
.RowHeight = 24
.ColumnWidth = 4.5
End With
'Largeur et hauteur des lignes 5 et 6 (sans les colonnes 1 et 5)
With Range(Cells(i + 5, j + 2), Cells(i + 6, j + 4))
.RowHeight = 26.5
.ColumnWidth = 4.5
End With
'Largeur de la 1ere colonne
With Range(Cells(i + 1, j + 1), Cells(i + 7, j + 1))
.ColumnWidth = 1
End With
'Largeur de la 5ere colonne
With Range(Cells(i + 1, j + 5), Cells(i + 7, j + 5))
.ColumnWidth = 1
End With
With Cells(i + 4, j + 2)
.Value = "Lot:"
.Font.Name = "Times New Roman"
.Font.Size = 14
.VerticalAlignment = xlVAlignTop
End With
With Cells(i + 5, j + 4)
.Value = "Pal."
.Font.Name = "Times New Roman"
.Font.Size = 14
.VerticalAlignment = xlVAlignTop
End With
Next
Next
End Sub
|
Ce qui est completemnt different de ce que tu avais demandé initialement.
|