Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Besoins explication code VBA

carlitostyle

XLDnaute Junior
Bonjours à tout le monde !

j'ai un petit probléme concernant un code en vba, en effet je ne comprend pas trop les details du code.

C'est le suivant :


C'est lorsque j'appuie sur un bouton présent sur la feuille excel. il colorie la ligne ( sheets "demandetraitee" ) où il y a écrit " validée mais à commander" en colonne G . Et la copie dans sheets " demandeacceptéacommander".

Tout marche niquel. mais il me rajoute une date a la fin de la ligne quand elle est copier dans " demandeacceptéacommander" qui m'ennuie un peu.

Pourriez vous m'expliquer ce code. Merci beaucoup !
 

Pierrot93

XLDnaute Barbatruc
Re : Besoins explication code VBA

bonjour,

Tout marche niquel. mais il me rajoute une date a la fin de la ligne quand elle est copier dans " demandeacceptéacommander" qui m'ennuie un peu.

A priori, c'est l'instruction ci dessous qui en est la cause :
Code:
Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, 11).Value = Now

bon après midi
@+
 

carlitostyle

XLDnaute Junior
Re : Besoins explication code VBA

bonjour,



A priori, c'est l'instruction ci dessous qui en est la cause :
Code:
Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, 11).Value = Now

bon après midi
@+


D'accord mais si je l'enléve de

Code:
Sub Bouton1_Cliquer()

    Dim dernLigneAcc As Integer
    Dim dernLigneRefus As Integer
    Dim dernlignecom As Integer

    
    
   For j = 1 To ActiveSheet.Range("A65536").End(xlUp).Row
   
   
If ActiveSheet.Range("G" & j).Value = "Acceptée" And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 4 Then

dernLigneAcc = Sheets("accepter").Range("A65536").End(xlUp).Row
  For i = 0 To 10
Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 4
 Next
Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, 10).Value = Now
            
            
            
        ElseIf ActiveSheet.Range("G" & j).Value = "Refusée" And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 3 Then
        
            dernLigneRefus = Sheets("refuser").Range("A65536").End(xlUp).Row
            For i = 0 To 10
                Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
                ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 3
            Next
            Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, 10).Value = Now



   ElseIf ActiveSheet.Range("G" & j).Value = "Validée mais à commander " And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 8 Then
   
            dernlignecom = Sheets("demandeacceptéacommander").Range("A65536").End(xlUp).Row
            For i = 0 To 11
                Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
                ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 8
           
    

End Sub


ca me met un probleme d'erreur de syntaxe... Qu'est-ce que tu en pense ? je ne suis pas trop calé en VBA, j'éssaie d'apprendre.

Merci
 

mintri

XLDnaute Occasionnel
Re : Besoins explication code VBA

Hello,

Effectivement sans entrer dans le détail tu n'as pas supprimé

Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, 11).Value = Now

mais :

Next
Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, 11).Value = Now

et il manque un autre next quelque part comme l'a souligné Pierrot93 !
 
Dernière édition:

mintri

XLDnaute Occasionnel
Re : Besoins explication code VBA

Essaye avec ces corrections :


Sub Bouton1_Cliquer()

Dim dernLigneAcc As Integer
Dim dernLigneRefus As Integer
Dim dernlignecom As Integer



For j = 1 To ActiveSheet.Range("A65536").End(xlUp).Row


If ActiveSheet.Range("G" & j).Value = "Acceptée" And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 4 Then

dernLigneAcc = Sheets("accepter").Range("A65536").End(xlUp).Row
For i = 0 To 10
Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 4
Next
Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, 10).Value = Now



ElseIf ActiveSheet.Range("G" & j).Value = "Refusée" And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 3 Then

dernLigneRefus = Sheets("refuser").Range("A65536").End(xlUp).Row
For i = 0 To 10
Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 3
Next
Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, 10).Value = Now



ElseIf ActiveSheet.Range("G" & j).Value = "Validée mais à commander " And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 8 Then

dernlignecom = Sheets("demandeacceptéacommander").Range("A65536").End(xlUp).Row
For i = 0 To 11
Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 8

Next


End If

Next

End Sub
 

carlitostyle

XLDnaute Junior
Re : Besoins explication code VBA

Bonjour à toute la communauté XLD !

Merci Mintri pour cette correction. c'est perfecto, j'ai appliqué cette modif aux deux auitres ligne et c'est bon


Passe une bonne journée et merci encore
 

Discussions similaires

Réponses
11
Affichages
346
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…