Macro Excel (question débutante)

Résolu/Fermé
delphine - 6 déc. 2012 à 16:04
 delphine - 6 déc. 2012 à 16:42
Bonjour,

je débute en macro excel : tout du moins je sais créer une macro "de base", mais pas d'insérer des fonctions, des If etc
J'ai actuellement un fichier sur lequel j'aimerais, pour les colonnes A,B,G,H, indiquer des données si la cellule C de la même ligne n'est pas vide.
J'ai trouvé sur Internet une base en If/Then qui me semble pas mal, mais je crois que je n'arrive pas à formuler clairement à l'intérieur ce que je veux.
Voici ce que j'ai tapé :

For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
If Not IsEmpty(Range("C" & i)) Then Range("A" & i) = "commande centrale"
If Not IsEmpty(Range("C" & i)) Then Range("B" & i) = MonthName(("D" & i), False)
If Not IsEmpty(Range("C" & i)) Then Range("G" & i) = ("I" & i) / ("F" & i)
If Not IsEmpty(Range("C" & i)) Then Range("H" & i) = 0
Next

Et ce que je veux :
ligne par ligne, la macro vérifie si la cellule C n'est pas vide. Si elle n'est pas vide :
- dans la colonne A (à partir de A2), elle inscrit "commande centrale"
- dans la colonne B, elle inscrit le mois (en se basant sur la colonne D qui est du type JJ/MM/AAAA) (à la base, j'étais partie sur une fonction Texte qui ne semble pas marcher en VBA)
- dans la colonne G, elle calcule Gi=Ii/Fi
- dans la colonne H, elle inscrit 0

Apparemment il y a a minima un problème sur mes formulations pour les colonnes B et G. Quelqu'un peut-il m'aider svp ???
Merci beaucoup

Delphine



A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
6 déc. 2012 à 16:21
Bonjour,

pour la colonneB, tu as la commande "format (=Texte sur Excel)

Bi'==format(cells(i,"D"),"mmmm")

et pour GI

If cells(i,"F")<>"" then
Cells(i, "I")/cells(i,"F")
Else
Cells(i,"F")=""
end if

et pour
0
Merci Michel, voilà ce que j'ai inscrit :

For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
If Not IsEmpty(Range("C" & i)) Then Range("A" & i) = "commande centrale"
If Not IsEmpty(Range("C" & i)) Then Range("B" & i) = Format(Cells(i, "D"), "mmmm")
If Not IsEmpty(Range("C" & i)) Then Range("G" & i) = Cells(i, "I") / Cells(i, "F")
If Not IsEmpty(Range("C" & i)) Then Range("H" & i) = 0
Next

Et ça fonctionne nickel ! Merci, ça m'a évité plusieurs heures de prise de tête !
0