TraderAS
-
22 févr. 2013 à 10:45
jordane45
Messages postés38109Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mars 2024
-
22 févr. 2013 à 17:18
bonjour,
je suis débutant avec VBA/Excel j'ai écris ce code mais je ne sais pas comment l'organiser
en faite je veux ouvrir un fichier, insérer une ligne, incrémenter la cellule de la colonne A, et fair un copier coller d'un ActiveWorkbook.Name
Sub test()
Workbooks.Open Rep & FichS
Rows("5:5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
[A5] = [A6] + 1
End Sub
With Workbooks(FichD)
.Sheets("Fundamentals").Range("C5:G5").Copy _
Workbooks(FichS).Sheets("Feuil1").Range("C9:F9").End(xlUp).Offset(1, 0)
Workbooks(FichS).Save
Workbooks(FichS).Close
End With
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 22 févr. 2013 à 14:00
Déjà il faut que tu déclare tes variable, même si le VBA tolère qu'on utilise des variables non déclarer c'est ... vraiment pas propre
Ensuite il faut savoir qu'une variable à une "portée", soit une partie dans le code où elle est existante.
Si tu déclare une variable dans une fonction (function) ou une procédure (sub) alors elle ne sera utilisable que dans cette partie. Pour avoir une variable utilisable dans tout le fichier il faut la déclarer directement dans ce fichier.
Par exemple :
Sub Exemple1()
Dim VaraiablePourExemple1 as string
'...
End sub
Cette variable ne sera utilisable que dans Exemple1
Dim VariablePourExemple2
Sub Exemple2()
'...
End sub
Cette variable sera utilisable dans tout le fichier
Néanmoins c'est sale car si une fonction modifie cette variable, elle sera aussi modifier pour toutes les autres fonctions (ce qui n'est pas forcément ton but).
Il est donc possible de passer des paramètre à tes fonction
Sub ExempleAvecParam(byval/byref Variable as string)
'...
End sub
byval veux dire que la variable est propriétaire de la fonction appelée, soit si elle est modifier dans la fonction/procédure alors la variable présente dans l'appel ne sera pas modifier
byref veux dire que la variable est propriétaire de la fonction appelante, soit si elle est modifier dans la fonction alors la variable présente dans l'appel sera modifier.
Exemple :
Sub Test1()
Dim VarByVal As String
Dim VarByRef As String
VarByVal = "ByVal"
VarByRef = "ByRef"
SousFonction VarByVal, VarByRef
MsgBox "VarByVal " & VarByVal & vbCrLf & "VarByRef " & VarByRef
End Sub
Sub SousFonction(ByVal MaVar1 As String, ByRef MaVar2 As String)
MaVar1 = "Je fait des modif"
MaVar2 = "Je fait des modif"
End Sub
Enfin bref je sait pas si je suis très claire.
Tente de modifier ton code et renvoie le ;)
Si tu n'y arrive pas je te filerais un coup de main