A voir également:
- [EXCEL->VBA] Passé des variable entre feuille
- Feuille de pointage excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Trousseau mot de passe iphone - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
5 réponses
tu peux reformuler stp?
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.
comment se presente la feuil1? comment se presente la feuil2?
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
@+
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.
comment se presente la feuil1? comment se presente la feuil2?
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
@+
desolé si c etait pas clair
oui c est ça, j ai un tableau ac plusieur ligne et colonne dans la feuille 1.
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.
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
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()
Dim var As String
var = ActiveCell
If var <> "" Then
Do While ActiveCell.Next.Value <> ""
var = var & Chr(10) & ActiveCell.Next.Value
ActiveCell.Next.Select
Loop
End If
Sheets("Feuil2").Select
Range("A1").Value = var
End Sub
il te reste a modifier l endroit (cellules, feuilles) ou tu veux coller ta variable
@+
Dim var As String
var = ActiveCell
If var <> "" Then
Do While ActiveCell.Next.Value <> ""
var = var & Chr(10) & ActiveCell.Next.Value
ActiveCell.Next.Select
Loop
End If
Sheets("Feuil2").Select
Range("A1").Value = var
End Sub
il te reste a modifier l endroit (cellules, feuilles) ou tu veux coller ta variable
@+
mEhO_
Messages postés
1
Date d'inscription
vendredi 28 décembre 2007
Statut
Membre
Dernière intervention
28 décembre 2007
28 déc. 2007 à 14:47
28 déc. 2007 à 14:47
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.
J ai un autre soucis.
Je suis sur la feuille 1 , j appelle la procedure "générerEtiquette", pour formater la mise en forme de la feuille 2 (passé en parametre a la procedure) en plusieurs etiquettes.
Je voudrais que la feuille 2 ressemble à ça : http://pix.nofrag.com/2/b/b/0071aadc70425b1671bbd13f9efe8.jpg
Le probleme est que qd j appele la procedure "générerEtiquette", c est la feuille 1 qui se formate et pas la feuille 2.
Comment faire pour que ce soit bien la feuille 2 qui seformate ?
Pourtant pour tester, qd je fais ça
Ci-dessous le code de la procedure:
J ai un autre soucis.
Je suis sur la feuille 1 , j appelle la procedure "générerEtiquette", pour formater la mise en forme de la feuille 2 (passé en parametre a la procedure) en plusieurs etiquettes.
Je voudrais que la feuille 2 ressemble à ça : http://pix.nofrag.com/2/b/b/0071aadc70425b1671bbd13f9efe8.jpg
Le probleme est que qd j appele la procedure "générerEtiquette", c est la feuille 1 qui se formate et pas la feuille 2.
Comment faire pour que ce soit bien la feuille 2 qui seformate ?
Pourtant pour tester, qd je fais ça
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ce qui est completemnt different de ce que tu avais demandé initialement.
tu avais dit ; sur 1 ligne (pas cellule) j ai mes données, je veux concatener chaque cellule de cette ligne pour en faire 1 etiquette preformatée.
la c est quand meme different. il te faut imaginer un moyen de parametrer le nb d etiquettes, leurs positionnements, faire un select case selon la valeur du pharmacien pour aller sur sa feuille etc...
pour t expliquer ce que je voulais faire plus haut, je te detaille :
Sub MaMacro()
Dim var As String ->ca ca va
var = ActiveCell -> la c est la cellule ou tu as positionné ton curseur qui devrait constituer le debut de ton etiquette
If var <> "" Then ->si c est pas nul (sait on jamais)
Do While ActiveCell.Next.Value <> "" -> je lis chaque cellule de la ligne jusqu'a une valeur nulle
var = var & Chr(10) & ActiveCell.Next.Value ->je concatene la valeur de la cellule initiale + la valeur de la 2eme cellule avec un saut de ligne
ActiveCell.Next.Select ->je deplace le curseur sur la cellule suivante dans la meme ligne
Loop j-> je boucle pour arriver a la fin de ligne ecrite
End If->je termine le if pas null
Sheets("Feuil2").Select -> j active la feuil2 par defaut
Range("A1").Value = var ->je recopie la variabvle concatenee sur la cellule A1
End Sub ->je termine ma macro
tu peux imaginer toute solution sans deplacer le curseur.
il suffit de dire par ex :
sur la feuil1 tu a DUCON comme pharmacien en A1
son adresse en A2
Son lot en A3
et une feuille qui s appelle DUCON
tu peux dire que la feuille de destination s appelle range("A1).value (DUCON) ou activecell si tu es positionné sur la A53 (par ex)
si tes etiquettes sont fixes, tu peux dire
sheets(DUCON).range("A1").value = Activecell.value
tu peux meme ecrire s il te faut 3 etiquettes
sheets(DUCON).range("A1" ).value = Activecell.value (pour A1)
sheets(DUCON).range("A4").value = Activecell.value (pour A4)
sheets(DUCON).range("A7").value = Activecell.value (pour A7)
et continuer comme ca avec activencell.next.select puis .value
@+
tu avais dit ; sur 1 ligne (pas cellule) j ai mes données, je veux concatener chaque cellule de cette ligne pour en faire 1 etiquette preformatée.
la c est quand meme different. il te faut imaginer un moyen de parametrer le nb d etiquettes, leurs positionnements, faire un select case selon la valeur du pharmacien pour aller sur sa feuille etc...
pour t expliquer ce que je voulais faire plus haut, je te detaille :
Sub MaMacro()
Dim var As String ->ca ca va
var = ActiveCell -> la c est la cellule ou tu as positionné ton curseur qui devrait constituer le debut de ton etiquette
If var <> "" Then ->si c est pas nul (sait on jamais)
Do While ActiveCell.Next.Value <> "" -> je lis chaque cellule de la ligne jusqu'a une valeur nulle
var = var & Chr(10) & ActiveCell.Next.Value ->je concatene la valeur de la cellule initiale + la valeur de la 2eme cellule avec un saut de ligne
ActiveCell.Next.Select ->je deplace le curseur sur la cellule suivante dans la meme ligne
Loop j-> je boucle pour arriver a la fin de ligne ecrite
End If->je termine le if pas null
Sheets("Feuil2").Select -> j active la feuil2 par defaut
Range("A1").Value = var ->je recopie la variabvle concatenee sur la cellule A1
End Sub ->je termine ma macro
tu peux imaginer toute solution sans deplacer le curseur.
il suffit de dire par ex :
sur la feuil1 tu a DUCON comme pharmacien en A1
son adresse en A2
Son lot en A3
et une feuille qui s appelle DUCON
tu peux dire que la feuille de destination s appelle range("A1).value (DUCON) ou activecell si tu es positionné sur la A53 (par ex)
si tes etiquettes sont fixes, tu peux dire
sheets(DUCON).range("A1").value = Activecell.value
tu peux meme ecrire s il te faut 3 etiquettes
sheets(DUCON).range("A1" ).value = Activecell.value (pour A1)
sheets(DUCON).range("A4").value = Activecell.value (pour A4)
sheets(DUCON).range("A7").value = Activecell.value (pour A7)
et continuer comme ca avec activencell.next.select puis .value
@+