Transfers de formules
bonjour a tous,
j'apprend tout seul le vba (sur internet )
mais je suis confronté a des formules que je sais saisir mais pas transcrire en vba genre :
dans une colonne (A) se trouve des dates :
dans une autre colonne (C) je voudrais renvoyer un Age avec une décimale.
ma formule est : =SI(A3="";"";ENT((AUJOURDHUI()-A3)/365,25))
une boucle pour lire la colonne A et reproduire en age en colonne C
pour ceux interressé je tient mon fichier (compil de plein de process ) a disposition ,(a la base s'est un carnet d'adresse)
merci encore de toutes aide que vous pourriez m'apporter.
Bonjour denisk et bienvenue sur le forum,
Tu disposes déjà d'une formule, à quoi sert le VBA? En étendant ta formule, tu aurais rigoureusement le même résultat =) Et pour le coup c'est bien plus simple à faire à la main qu'en VBA ^^
Bonjour,
entièrement d'accord avec la méthode de d3d9x =)
mais pour information le
AUJOURDHUI
en vba c'est
now()
merci de votre reponse rapide,
oui j'aurais pu garder les formules mais cette page ou ce trouve differentes données sont accessible a des personnes qui pourait les effacer .
donc je cree cette page avec tout les paramètres en vue d'une initialisation genre (taille colonne ligne font ect..) d'ou deja les formules
dans les cellules visée d'ou le vba.
voici mon code :
Sub page_saisie()
'-----------------------------------------------------------------mise en page de la feuille saisie
Application.ScreenUpdating = False 'acceleration de la macro
'------ taille colonnes
Columns("A:A").ColumnWidth = 32
Columns("B:B").ColumnWidth = 25
Columns("C:C").ColumnWidth = 18
Columns("D:D").ColumnWidth = 45
Columns("E:E").ColumnWidth = 12
Columns("F:F").ColumnWidth = 24
Columns("G:H").ColumnWidth = 23
Columns("I:I").ColumnWidth = 45
Columns("J:J").ColumnWidth = 17
Columns("K:K").ColumnWidth = 7
Columns("L:L").ColumnWidth = 35
Columns("M:W").ColumnWidth = 35
'--------taille lignes
Rows("1:100").RowHeight = 28
'------------------------------------------------------------
Range("A2:L100").Select '--tout le tableau
With Selection.Font
.Name = "Calibri"
.Size = 13
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
.Italic = False
.Bold = False
End With
With Selection
'.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 1
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'------------------------------------------------
Range("K2:K100").Select '--age
Selection.NumberFormat = "0"
'datedujour = today????????????????
' mettre les ages en K depuis B
Range("C2:C100").Select '-- date naissance
Selection.NumberFormat = "mm/dd/yyyy"
Range("G2:H100").Select '--tel
Selection.HorizontalAlignment = xlCenter
With Selection.Font
.Name = "Calibri"
.Size = 13
.Italic = True
.Bold = True
End With
Range("A2:A100").Select '--Nom prenom
With Selection.Font
.Name = "Calibri"
.Size = 13
.Italic = False
.Bold = True
End With
'-------------------------- mettre alternancede couleur !
'-----nombre de lignes----
For i = 2 To 63 Step 2
'------------------nombre de colonne----
Range(Cells(i, 1), Cells(i, 12)).Select
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Next i
Application.ScreenUpdating = True 'acceleration de la macro
End Sub
Je comprends mieux. Dans ton code il suffit de mettre (par exemple)
Sub exemple()
Dim formule As String
formule = "=IF(A4=" & Chr(34) & Chr(34) & "," & Chr(34) & Chr(34) & ",INT((TODAY()-A4)/365.25))"
[C4:C25].Formula = formule
End Sub
.....super merci
deux jours que je cherche ,j'épluche ta formule afin d'apprendre le pourquoi des choses ...enfin la syntaxe
merci encore !
probleme resolu je transmet mon fichier a ceux que ça pourrait interresser ? (s'est un genre "carnet d'adresse")
apprendre en s'amusant en fait.
surement des simplification general a apporter ?
merci encore