Macro Excel (question débutante)
Résolu
delphine
-
delphine -
delphine -
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
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:
- Macro Excel (question débutante)
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
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
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
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 !
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 !