Rechercher : dans
Par :

Pb Excel - macro report de lignes

Dernière réponse le 16 nov 2009 à 15:23:42 stopweb, le 9 nov 2009 à 11:38:40 
 Signaler ce message aux modérateurs

Bonjour,

je reviens vers pour un pb de macro.
ci-joint le fichier : http://cjoint.com/?ljlEbvQzEH

il s'agit d'un fichier excel avec deux feuilles. la 1ère permet de saisir un bon de livraison, la 2ème récupère les infos importantes. il y a actuellement un pb dans le report des lignes de désignations. comme le montre le fichier joint, les désignations du 3ème bon de livraison viennent remplir des vides des autres bons de livraison.

ma seconde requête concerne le n° de bon que j'attribue automatiquement en incrémentant. est-il possible d'avoir un n° de type 09xxx qui s'incrémenterait de +1.

merci de votre précieuse aide.

Configuration: Windows XP
excel 2007

Meilleures réponses pour « Pb Excel macro report de lignes » dans :
Figer une ligne dans un tableau Excel VoirPour figer la ligne 1 (par exemple) dans une feuille excel : Sélectionnez la ligne 2, Puis allez dans le menu "Fenêtres" et option "Figer les volets".
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...

1

pijaku, le 9 nov 2009 à 12:30:03

Salut,
Normal, celui qui t'as aidé la première fois ne devait pas être bien réveille. Cette macro fonctionne mieux...

Private Sub CommandButton1_Click()
Dim lig As Integer
Cells(23, "d").Value = Cells(23, "d").Value + 1
With Sheets("Récap")
lig = .Range("A65536").End(xlUp).Offset(1, 0).Row
End With
ActiveSheet.Range("D23").Copy Sheets("Récap").Range("A" & lig)
ActiveSheet.Range("c21").Copy Sheets("Récap").Range("B" & lig)
ActiveSheet.Range("e12").Copy Sheets("Récap").Range("C" & lig)
ActiveSheet.Range("C27").Copy Sheets("Récap").Range("D" & lig)
ActiveSheet.Range("C28").Copy Sheets("Récap").Range("E" & lig)
ActiveSheet.Range("C29").Copy Sheets("Récap").Range("F" & lig)
ActiveSheet.Range("C30").Copy Sheets("Récap").Range("G" & lig)
ActiveSheet.Range("C31").Copy Sheets("Récap").Range("H" & lig)
ActiveSheet.Range("C32").Copy Sheets("Récap").Range("I" & lig)
ActiveSheet.Range("C33").Copy Sheets("Récap").Range("J" & lig)
ActiveSheet.Range("C34").Copy Sheets("Récap").Range("K" & lig)
ActiveSheet.Range("C35").Copy Sheets("Récap").Range("L" & lig)
ActiveSheet.Range("C36").Copy Sheets("Récap").Range("M" & lig)
ActiveSheet.Range("C37").Copy Sheets("Récap").Range("N" & lig)
ActiveSheet.Range("C38").Copy Sheets("Récap").Range("O" & lig)
With Sheets("Récap").Columns("A:O")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Font.Bold = False
ActiveSheet.PrintOut , , 1, True, "Mon_Imprimante", False, False
End With
End Sub

Quant à ton n° de BL, tu veux qu'il s'incrémente quand? A l'ouverture du fichier? après impression? Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --

Répondre à pijaku

2

stopweb, le 9 nov 2009 à 12:39:02

Je viens de vous envoyer un message privé mais vous venez de répondre.
vraiment super, c'est parfait.
pour l'incrémentation ce serait mieux à l'ouverture du fichier je pense.
merci de votre aide, vraiment.
où pourrais-je trouver les fonctions de base vb avec des ex. simples (comme ça je pourrais progresser).

Répondre à stopweb

3

pijaku, le 9 nov 2009 à 12:44:45

Je ne sais pas ou trouver les fonctions de base. J'ai appris sur le tas... Vois avec Google s'il en connait.

Incrémentation à l'ouverture du fichier :
ALT + F11
En haut à gauche de la fenêtre Visual Basic, un petite fenêtre contient :
Feuil1(BL)
Feuil2(Récap)
This workbook.
Cliquer sur This Workbook et copier coller cette procédure :

Private Sub Workbook_Open()
Sheets("BL").Range("D23") = Sheets("Récap").Range("A65536").End(xlUp).Value + 1
End Sub
fermer enregistrer fermer excel et tester l'ouverture... en ouvrant le fichier!! Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --

Répondre à pijaku

4

 stopweb, le 16 nov 2009 à 15:23:42

Bonjour,
je viens de rajouter des fonctionnalités à ma macro qui rendent inopérantes ma première demande et les lignes de développement de pijaku. (comme le montre le fichier joint, les désignations du 2ème bon de livraison reviennent à nouveau remplir les lignes vides du 1er).
je ne vois pas comment faire....

http://cjoint.com/?lqptp0m4wl


merci de votre aide.

Répondre à stopweb