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 :

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
Sheets("demandeacceptéacommander").Range("A" & dernlignecom + 1).Offset(0, 11).Value = Now

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
 

Discussions similaires

Réponses
11
Affichages
296

Statistiques des forums

Discussions
312 239
Messages
2 086 494
Membres
103 234
dernier inscrit
matteo75654548