Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2875 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  aide sur une le code d'une macro

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide sur une le code d'une macro

n°1457235
GOCK
Posté le 14-10-2006 à 18:14:21  profilanswer
 

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

mood
Publicité
Posté le 14-10-2006 à 18:14:21  profilanswer
 

n°1457241
eric455
Posté le 14-10-2006 à 18:35:04  profilanswer
 

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+

n°1457565
GOCK
Posté le 15-10-2006 à 16:45:57  profilanswer
 

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

n°1457610
seniorpapo​u
Posté le 15-10-2006 à 18:39:11  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  aide sur une le code d'une macro

 

Sujets relatifs
récupérer les valeurs d'un Formulaire (UserForm) dans une macroutilise les "nom" excel dans une macro VBA
besoin d'aide pour mon forumAide sur création de podcast
Aide pour creer un site internetBesoin d'aide pour validation HTML
[C] Librairie BC 3.1 pour chronomètrer du code?aide OpenOffice.org utiliser la fonction "RECHERCHEV"
Code retour Java sous UnixCode PHP pour lecteur video
Plus de sujets relatifs à : aide sur une le code d'une macro


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR