aide sur une le code d'une macro

aide sur une le code d'une macro - VB/VBA/VBS - Programmation

Marsh Posté le 14-10-2006 à 18:14:21    

Bonjour,
 
Je suis entrain de travailler sur un code source vb
 
Il concerne une facture et les enregistrements sur une feuille du classeur excel
 
 La feuille se nomme « facture », et les enregistrements de la facture se trouvent sur une feuille nommée « linstingV »)
 
 Dans la cellule A13 de la feuille « facture » j?ai rentré la formule « =(listingVA10)+1 »
 
De telle sorte que dans la macro est terminée la cellule A13 soit inncrémentée de 1
 
 Seulement la cellule A13 de facture s?incrémente de 1 (elle deviens après que la macro soit terminée =(listingV11)+1, donc elle ne bouge pas et reste à la valeur 1
 
 Et la cellule A10 de linstingV reste également à la même valeur que la cellule en  dessous
 
 C?est difficile à expliquer, voici le code source qui est un peu brouillon et pas au point et donc pas terminée
 
 Merci de m?aider.
Sub enregistrerlafacture()
 
'
myyear = Year(Range("G1" ))
 
couryear = Year(Now)
If myyear = couryear Then GoTo suite Else MsgBox ("ATTENTION! bien vérifier d'avoir rentré la date correspondant à l'année en cours au format jj/mm/aaaa !" )
Range("G1" ).ClearContents
Exit Sub
suite:
 
Style = vbOKCancel
Reponse = MsgBox("As-tu bien tout vérifié, parce qu'après c'est plus compliqué de modifier (il faut aller dans le listing). Si c'est bon, clique sur OK ", Style)
If Reponse = vbCancel Then Exit Sub
 
ActiveSheet.Unprotect
Worksheets("listingV" ).Select
Worksheets("listingV" ).Rows(10).Select
Selection.Insert
 
Range("A10:DC10" ).Select
With Selection.Interior
        .ColorIndex = 2
        .Pattern = xlGray16
        .PatternColorIndex = 37
        With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End With
 
Range("A10" ).Select
Range("A10" ).Formula = "=MAX(A11:A5006)+1"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Range("A7" ).Select
 
    'Coordonnées:
    Range("A10" ).Formula = "=facture!f10"
    Range("B10" ).Formula = "=facture!G1"
    Range("C10" ).Formula = "=facture!B10"
    Range("D10" ).Formula = "=facture!E4"
    Range("E10" ).Formula = "=facture!E5"
    Range("F10" ).Formula = "=facture!E6"
    Range("F6" ).Formula = "=facture!G10"
     
    'Produit 1
    Range("H10" ).Formula = "=facture!A16"
    Range("I10" ).Formula = "=facture!B16"
    Range("J10" ).Formula = "=facture!C16"
    Range("K10" ).Formula = "=facture!D16"
    Range("L10" ).Formula = "=facture!E16"
    Range("M10" ).Formula = "=facture!F16"
    Range("N10" ).Formula = "=facture!G16"
     
    'Produit 2
    Range("O10" ).Formula = "=facture!A17"
    Range("P10" ).Formula = "=facture!B17"
    Range("Q10" ).Formula = "=facture!C17"
    Range("R10" ).Formula = "=facture!D17"
    Range("S10" ).Formula = "=facture!E17"
    Range("T10" ).Formula = "=facture!F17"
    Range("U10" ).Formula = "=facture!G17"
     
     
     
    Rows("10:10" ).EntireRow.AutoFit
    Worksheets("listingV" ).Rows(10).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues
 
    madate = Range("B10" )
    Range("DD10" ) = Month(madate) * 1.1
     
    'selectionne la feuille des commandes
    Worksheets("facture" ).Select
    Range("G1" ).Select
    Range("G1" ) = Now
     
    Range("A1" ).Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Exit Sub
Blème:
    MsgBox ("le date, c'est en chiffre STP, Pas en charabia!" )
    Exit Sub
End Sub

Reply

Marsh Posté le 14-10-2006 à 18:14:21   

Reply

Marsh Posté le 14-10-2006 à 18:35:04    

Bonsoir le Forum
Bonsoir gock
 
Une idée :
 
A l'ouverture de la macro, tu récupère la valeur de A13 et à la fin tu l'incrémente de 1
 
Ai je bien compris ????????,,,,
 
A+

Reply

Marsh Posté le 15-10-2006 à 16:45:57    

je souhaite que la valeur A10 de listingV soit incrémentée de 1 par rapport à la cellule A11  
normalement la cellule A13 de facture doit utiliser la valeur de A10 de listingv, seulement elle ne bouge pas, au contraire la formule , qui au départ était =(linstingV!A10)+1 deviens =(linstingV!A11)+1

Reply

Marsh Posté le 15-10-2006 à 18:39:11    

Bonsoir,
n'est-ce pas normal?  tu fais "selection.insert", la référence a A10 devient la référence à A11
Je ne sais pas comment maintenir la référence absolue ($a$10) ne fonctionne pas dans ce cas!!
tu peux déjà contourner en mettant:
Worksheets("facture" ).Range("a13" ).Formula = "=(listingv!$A10)+1"
après le selection.insert
Cordialement


Message édité par seniorpapou le 15-10-2006 à 18:39:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed