commentaire de code vba

sniper

XLDnaute Nouveau
Bonjour,
j'aimerai savoir comment on fait pour commenter un code ?
Je voudrais un peu d'aide pour m'expliquer ce code que j'ai du mal à comprendre ?
merci pour votre aide


Sub chercher()
Dim wbks As Workbook, adr$, fin&, x$, n, n1$, t
adr = ThisWorkbook.Path
x = Year(Date)
With Feuil1
If Application.WorksheetFunction.CountA(.Range("B2:B100")) > 0 Then

fin = .Range("B" & Rows.Count).End(xlUp).Row
val = .Range("B" & fin)
n = Split(val, "-")(2): n1 = CDbl(n) + 5
val = Replace(val, n, n1)
Else:
Set wbks = Workbooks.Open(adr & ":Factures.xlsx")
'Set wbks = Workbooks.Open(adr & "\Factures.xlsx")
With wbks.Sheets(x)
fin = .Range("B" & Rows.Count).End(xlUp).Row
val = .Range("B" & fin)
End With
wbks.Close
n = Split(val, "-")(2): n1 = CDbl(n) + 5
val = Replace(val, n, n1)
End If
End With
End Sub
 

vgendron

XLDnaute Barbatruc
Re : commentaire de code vba

Bonjour,
pour commenter un code, il faut mettre un apostrophe devant la ligne de commentaire

ensuite.. si c'est pas toi qui a fait le code. c'est toujours plus compliqué de comprendre ce que l'autre a voulu faire..

ce qui donne ceci
Code:
Sub chercher()
'déclaration des variables
Dim wbks As Workbook, adr$, fin&, x$, n, n1$, t
'récupération du chemin du classeur en cours
adr = ThisWorkbook.Path
'récupération de l'année en cours
x = Year(Date)
'avec la feuille1
With Feuil1
    'si le nombre de cellules non vides dans la range (B2:B1 00 ???) positif alors
    If Application.WorksheetFunction.CountA(.Range("B2:B1 00")) > 0 Then
        'fin=dernière cellule non vide de la colonne B
        fin = .Range("B" & Rows.Count).End(xlUp).Row
        'val = donnée de la dernière cellule de la colonne B
        Val = .Range("B" & fin)
        ' sépare le contenu de Val
        n = Split(Val, "-")(2): n1 = CDbl(n) + 5
        'remplace des éléments dans Val
        Val = Replace(Val, n, n1)
    'sinon
    Else:
        'ouvre le fichier Factures.xlsx
        Set wbks = Workbooks.Open(adr & ":Factures.xlsx")
        'Set wbks = Workbooks.Open(adr & "\Factures.xlsx")
        
        With wbks.Sheets(x)
        'fin=dernière cellule non vide de la colonne B
            fin = .Range("B" & Rows.Count).End(xlUp).Row
        'val = donnée de la dernière cellule de la colonne B
            Val = .Range("B" & fin)
        End With
        'ferme le classeur
        wbks.Close
        n = Split(Val, "-")(2): n1 = CDbl(n) + 5
        Val = Replace(Val, n, n1)
    End If
End With
End Sub

chez moi. ca plante dans tous les sens...

ha. et pour comprendre ce que fait un code, il ne faut pas hésiter à jouer de la touche F1. Bien souvent tu as des exemples qui te permettent une comprehension rapide
 

sniper

XLDnaute Nouveau
Re : commentaire de code vba

Re vgendron,

Merci en tout cas çà m'a beaucoup aidé
ceci est la suite de mon code, je voulais savoir si tu pouvais jeté un coup d'oeil et le commenter
merci bcp ;)





Sub copier()
Dim wbkc As Workbook, adr$, fin&, x$, wbks As Workbook, fin1&, i&, n$ 'déclaration des variables'
adr = ThisWorkbook.Path 'récupération de l'année en cours'
Application.ScreenUpdating = 0
Set wbks = ThisWorkbook
x = Year(Date)
Set wbkc = Workbooks.Open(adr & ":Cotations.xlsx") 'mac
'Set wbkc = Workbooks.Open(adr & "\Cotations.xlsx")
wbkc.Sheets(x).Select
With wbkc.Sheets(x)
fin = .Cells.Find("*", , xlValues, , 1, 2, 0).Row + 1
End With
With wbks.Sheets("Final")
fin1 = .Cells.Find("*", , xlValues, , 1, 2, 0).Row + 1
End With
For i = fin1 To 2 Step -1
If wbks.Sheets("Final").Cells(i, 2) <> "" Then
wbks.Sheets("Final").Rows(i).Copy wbkc.Sheets(x).Rows(fin)
fin = fin + 1
End If
Next i
With wbks.Sheets("Final")
fin1 = .Cells.Find("*", , xlValues, , 1, 2, 0).Row
End With
wbkc.Close 1
'Set wbkc = Workbooks.Open(adr & "\Vsatech.xlsx")
Set wbkc = Workbooks.Open(adr & ":Vsatech.xlsx") 'mac
wbkc.Sheets("Feuil1").Cells(4, 1) = CDate(wbks.Sheets("Final").Cells(fin1, 1))
wbkc.Sheets("Feuil1").Cells(4, 3) = wbks.Sheets("Final").Cells(fin1, 2)
wbkc.Sheets("Feuil1").Cells(3, 9) = wbks.Sheets("Final").Cells(fin1, 4)
wbkc.Sheets("Feuil1").Cells(14, 3) = wbks.Sheets("Final").Cells(fin1, 9)
wbkc.Sheets("Feuil1").Cells(14, 1) = wbks.Sheets("Final").Cells(fin1, 15)
wbkc.Sheets("Feuil1").Cells(14, 12) = "135 days" 'wbks.Sheets("Final").Cells(fin1, 4)
wbkc.Sheets("Feuil1").Cells(14, 14) = wbks.Sheets("Final").Cells(fin1, 16)
n = wbks.Sheets("Final").Cells(fin1, 6) & " " & wbks.Sheets("Final").Cells(fin1, 7) & " " & wbks.Sheets("Final").Cells(fin1, 8)
 
Dernière édition:

sniper

XLDnaute Nouveau
Re : commentaire de code vba

bonjour,
est-il possible de changer ces coordonnées de cellules par des variables en utilisant un pointeur
merci bcp ;)


code:

wbkc.Sheets("Feuil1").Cells(4, 1) = CDate(wbks.Sheets("Final").Cells(fin1, 1))
wbkc.Sheets("Feuil1").Cells(4, 3) = wbks.Sheets("Final").Cells(fin1, 2) classeur Vsatech'
wbkc.Sheets("Feuil1").Cells(3, 9) = wbks.Sheets("Final").Cells(fin1, 4)
wbkc.Sheets("Feuil1").Cells(7, 9) = wbks.Sheets("Final").Cells(fin1, 5)
wbkc.Sheets("Feuil1").Cells(8, 9) = wbks.Sheets("Final").Cells(fin1, 13)
wbkc.Sheets("Feuil1").Cells(9, 9) = wbks.Sheets("Final").Cells(fin1, 14)
wbkc.Sheets("Feuil1").Cells(14, 1) = wbks.Sheets("Final").Cells(fin1, 15)
wbkc.Sheets("Feuil1").Cells(14, 3) = wbks.Sheets("Final").Cells(fin1, 9)
wbkc.Sheets("Feuil1").Cells(14, 6) = wbks.Sheets("Final").Cells(fin1, 16)
wbkc.Sheets("Feuil1").Cells(14, 12) = wbks.Sheets("Final").Cells(fin1, 17)
wbkc.Sheets("Feuil1").Cells(14, 14) = wbks.Sheets("Final").Cells(fin1, 18)
wbkc.Sheets("Feuil1").Cells(14, 16) = wbks.Sheets("Final").Cells(fin1, 19)
wbkc.Sheets("Feuil1").Cells(38, 1) = wbks.Sheets("Final").Cells(fin1, 20)
wbkc.Sheets("Feuil1").Cells(38, 5) = wbks.Sheets("Final").Cells(fin1, 21)
wbkc.Sheets("Feuil1").Cells(38, 9) = wbks.Sheets("Final").Cells(fin1, 22)
wbkc.Sheets("Feuil1").Cells(38, 13) = wbks.Sheets("Final").Cells(fin1, 23)
n = wbks.Sheets("Final").Cells(fin1, 16)
wbkc.Sheets("Feuil1").Cells(14, 5) = n
 

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 698
dernier inscrit
miespetico