XL 2013 souci d'affichage des additions

clyde88

XLDnaute Nouveau
Bonjour,

S'il vous plait je suis a la recherche d'une aide précieuse je suis entrain de crééer une feuille de calcul excel en language vba et j'arrive pas afficher dans chaque cellule le résultat de l'addition sachant que j'additionne avec un nombre de pas de 0.5 en démarrant d'un certain nombre comme le montre le tableau ci-dessous je vous envoie aussi mon programme et merci pour votre aide.

Sub itération()

Dim Ninf, profondeur, longueurpieu As Single

Dim cell As Range

Dim x As Integer

Range("G2").Select

ActiveCell.FormulaR1C1 = "=RC[-2]"

Ninf = Range("E2")

longueurpieu = Range("F2")

profondeur = longueurpieu + 0.5

If profondeur > longueurpieu Then

profondeur = longueurpieu

Else: profondeur = profondeur + 0.5

End If

Range("G3") = profondeur

End Sub
 

vgendron

XLDnaute Barbatruc
Hello

essaie avec ceci... ??
VB:
Sub itération()

Dim Ninf, profondeur, longueurpieu As Single
Dim cell As Range
Dim x As Integer

Ninf = Range("E2")
longueurpieu = Range("F2")
step = 0.2

NbItération = (longueurpieu - Ninf) / step

Range("G2") = Ninf
formule = "=G2+" & step
Range("G3").Formula = formule
Range("G3:G" & NbItération + 2).FillDown

End Sub
 

vgendron

XLDnaute Barbatruc
avec ce code auquel j'ai ajouté des commentaires
VB:
Sub itération()

Dim Ninf, profondeur, longueurpieu As Single
Dim cell As Range
Dim x As Integer

If Range("G" & Rows.Count).End(xlUp).Row > 1 Then
    Range("G2:G" & Range("G" & Rows.Count).End(xlUp).Row).ClearContents
End If

Ninf = Range("E2") 'va chercher la valeur de départ en E2
longueurpieu = Range("F2") 'va chercher la longueur du pieu en F2
step = 0.5 'définit le step

NbItération = (longueurpieu - Ninf) / step 'calcule le nombre d'itération pour aller de Ninf à LongueurPieu par pas de step)


Range("G2") = Ninf 'on recopie la valeur inférieure
formule = "=G2+" & step 'on créer la formule
Range("G3").Formula = formule 'on colle la formule en G3
Range("G3:G" & NbItération + 2).FillDown ' et on la tire suffisamment pour aller jusqu'à la LongueurPieu

End Sub
 

vgendron

XLDnaute Barbatruc
Ne t'amuserais tu pas à mettre des valeurs qui font que le nombre d'itérations ne tombe pas juste..?
ex.. de 0 à 5 par pas de 0.7..

VB:
Sub itération()

Dim Ninf, profondeur, longueurpieu As Single
Dim cell As Range
Dim x As Integer

If Range("G" & Rows.Count).End(xlUp).Row > 1 Then
    Range("G2:G" & Range("G" & Rows.Count).End(xlUp).Row).ClearContents
End If

Ninf = Range("E2") 'va chercher la valeur de départ en E2
longueurpieu = Range("F2") 'va chercher la longueur du pieu en F2
step = 0.5 'définit le step

NbItération = Int((longueurpieu - Ninf) / step) 'calcule le nombre d'itération pour aller de Ninf à LongueurPieu par pas de step)


Range("G2") = Ninf 'on recopie la valeur inférieure
formule = "=G2+" & step 'on créer la formule
Range("G3").Formula = formule 'on colle la formule en G3
Range("G3:G" & NbItération + 2).FillDown ' et on la tire suffisamment pour aller jusqu'à la LongueurPieu
If Range("G" & NbItération + 2) <> longueurpieu Then
    Range("G" & NbItération + 3) = longueurpieu
End If
End Sub

Pour la prochaine demande.. il faut mettre un fichier exemple..
 

vgendron

XLDnaute Barbatruc
Petite modif (pour le fun)
pour t'ajouter un message au cas où la dernière valeur ne correspond pas au step prédéfini
VB:
Sub itération()

Dim Ninf, profondeur, longueurpieu As Single
Dim cell As Range
Dim x As Integer

If Range("G" & Rows.Count).End(xlUp).Row > 1 Then
    Range("G2:H" & Range("G" & Rows.Count).End(xlUp).Row).Clear
End If

Ninf = Range("E2") 'va chercher la valeur de départ en E2
longueurpieu = Range("F2") 'va chercher la longueur du pieu en F2
Step = 0.5 'définit le step

NbItération = Int((longueurpieu - Ninf) / Step) 'calcule le nombre d'itération pour aller de Ninf à LongueurPieu par pas de step)


Range("G2") = Ninf 'on recopie la valeur inférieure
formule = "=G2+" & Step 'on créer la formule
Range("G3").Formula = formule 'on colle la formule en G3
Range("G3:G" & NbItération + 2).FillDown ' et on la tire suffisamment pour aller jusqu'à la LongueurPieu
If Range("G" & NbItération + 2) <> longueurpieu Then
    Range("G" & NbItération + 3) = longueurpieu
    Range("G" & NbItération + 3).Interior.ColorIndex = 6
    Range("G" & NbItération + 3).Offset(0, 1) = "Attention.. dernier Step de " & Range("G" & NbItération + 3) - Range("G" & NbItération + 2) & Chr(10) & "au lieu de " & Step
End If
End Sub
 

clyde88

XLDnaute Nouveau
hello dsl de te solliciter encore une fois mais je bloque sérieusement car je voudrais que l'itération dès qu'elle dépasse la ligne 2de la collone d2 elle sera égale à cette valeur de range d2 et elle continue l'itération à partir de cette valeur de pas de 0.5 sachant que la colonne de zbase varie tu trouveras le fichier en pièce jointe merci infiniment
 

Pièces jointes

  • clyde avancement .xlsm
    22.8 KB · Affichages: 29

vgendron

XLDnaute Barbatruc
Hello
essaie avec ceci
VB:
Sub itération3()

Dim Ninf, Profondeur, LongueurPieu As Single

If Range("G" & Rows.Count).End(xlUp).Row > 1 Then
    Range("G2:H" & Range("G" & Rows.Count).End(xlUp).Row).Clear
End If

Ninf = Range("E2") 'va chercher la valeur de départ en E2
Profondeur = Ninf 'initialise la première valeur de Profondeur
LongueurPieu = Range("F2") 'va chercher la longueur du pieu en F2
step = 0.5 'définit le step
Set Zbase = Range("D2:D6") 'récupère le premier Zbase en D2

NbItération = Int((LongueurPieu - Ninf) / step) 'calcule le nombre d'itération pour aller de Ninf à LongueurPieu par pas de step)


Range("G2") = Ninf 'on recopie la valeur inférieure
i = 3
j = 1
While Profondeur < LongueurPieu
   
    While Profondeur + step < Zbase(j)
        Cells(i, 7) = Profondeur + step
        Profondeur = Profondeur + step
        i = i + 1
    Wend
    Cells(i, 7) = Zbase(j)
    i = i + 1
    Profondeur = Zbase(j)
    j = j + 1
Wend
   
End Sub
 

vgendron

XLDnaute Barbatruc
me suis permis de modifier tes quelques petites macros
qui place les couches de 1 à 5 dans la colonne B de la feuille Paramètres d'entrée (orthographe corrigée en passant....)

et j'ai ajouté une cellule pour définir le step dans la feuille plutot que dans le code.. au cas où ca viendrait à changer
et j'ai coloré en jaune les changements de base
 

Pièces jointes

  • clyde avancement .xlsm
    25.6 KB · Affichages: 32

Statistiques des forums

Discussions
312 169
Messages
2 085 909
Membres
103 032
dernier inscrit
etima