PDA

View Full Version : VBA Excel - Macro simple - help needed



Vinzent219
10-01-2016, 01:04 AM
Bonjour,

Je suis novice en terme de VBA. Je souhaite mettre au point une Macro qui fonctionne comme suit :

Une colonne A contient un Acronym en 3 lettre - du texte - exemple : ARR/ARA/ARU/...
Une colonne B contient une phrase - du texte
Une colonne C contient une date

Je souhaite obtenir en colonne D, la date de la colonne C + "x" jours, en fonction de :

1.Je souhaite rechercher le mot "Code" dans la colonne B et obtenir en colonne D = "Date de colonne C" + 3 jours
2.Je souhaite rechercher l'acronym ARA dans la colonne A ET le mot "Code" dans la colonne B , pour obtenir en colonne D = "Date de colonne C" + 5 jours
3.Je veux que pour toutes les celulles non vides restantes dans la colonne A, il y a en colonne D = "Date de colonne C" + 4 jours (il s'agit de la règle de base)

Pouvez-vous m'aider ? Me faire une proposition de code ? Une ébauche ?

Merci de votre aide,
Cordialement,

Vinzent219

mana
10-01-2016, 01:45 AM
Can you post the samle data?
I want to know data layout before and after run macro.

offthelip
10-01-2016, 02:32 PM
try this or maybe "essaye celui la" :

Sub addcolD()
lastrow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
inarr = Range(Cells(1, 1), Cells(lastrow, 3))
outarr = Range(Cells(1, 4), Cells(lastrow, 4))


For i = 1 To lastrow
If inarr(i, 1) <> "" Then
' not blank so must fill col d with something
codefound = InStr(inarr(i, 2), "Code", 1)
If codefound Then
' search for "ara in column A
Arafound = InStr(inarr(i, 1), "ARA", 1)
If Arafound Then
outarr(i, 1) = inarr(i, 3) + 5
Else
outarr(i, 1) = inarr(i, 3) + 3
End If
Else
outarr(i, 1) = inarr(i, 3) + 4
End If
Else
outarr(i, 1) = ""
End If

Range(Cells(1, 4), Cells(lastrow, 4)) = outarr