critique et conseil

hyo66

XLDnaute Nouveau
Bonsoirs a tous et toutes

J'aimerai avoir vos commentaires sur une ligne de code que j'ai ecrite (ca fonctionne)
ma question est simple : peut on l'écrire en moins de ligne ?
c'est pour le cas ou je devrai rajouter des colonnes de données a traiter

Private Sub CommandButton1_Click()

If ActiveCell.Row > 14 And ActiveCell.Row < Trim(Str(Range("weight").Row) - 2) Then
activerow = ActiveCell.Row + 1
Cells(activerow, 1).EntireRow.Insert
Cells(activerow, 16).FormulaR1C1 = "=IF(RC[-13]>RC[-1], 0,RC[-1]-RC[-13])"
Cells(activerow, 19).FormulaR1C1 = "=IF(RC[-14]>RC[-1], 0,RC[-1]-RC[-14])"
Cells(activerow, 22).FormulaR1C1 = "=IF(RC[-15]>RC[-1], 0,RC[-1]-RC[-15])"
Cells(activerow, 25).FormulaR1C1 = "=IF(RC[-16]>RC[-1], 0,RC[-1]-RC[-16])"
Cells(activerow, 28).FormulaR1C1 = "=IF(RC[-17]>RC[-1], 0,RC[-1]-RC[-17])"
Cells(activerow, 31).FormulaR1C1 = "=IF(RC[-18]>RC[-1], 0,RC[-1]-RC[-18])"
End If

ActiveSheet.PageSetup.PrintArea = "$A$1:$AG$" + Trim(Str(Range("weight").Row) + 2)

End Sub

Merci pour vos réponses par avance :):D:D
 

hyo66

XLDnaute Nouveau
Re : critique et conseil

Oui merci pour votre aide,c'est juste que j'ai repris le code sur mon fichier car depuis a la demande de mes collègues pour qui j'ai entrepris l'écriture de ce fichier on m'a demandé plus de colonne pour plus d'info (notamment des prix)
Donc pour l'instant ca fonctionne avec le premier jet (parce que deja rempli de l'état du stock) et quand le second sera prêt bien sur j'intègrerai la version évolué (il me faut juste un peu plus de temps pour tout batir)
Quant a l'auteur du premier fichier le problème est que je ne sait pas qui l'a écrit
ce n'était qu'un document de travail accessible a tout un chacun
 

hyo66

XLDnaute Nouveau
Re : critique et conseil

Bonsoir sur le fil

Bon je me remet au travail :):):):) pour les tests

A priori il y a un problème sur ton écriture

Private Sub CommandButton1_Click()

If Not (ActiveCell.Row > 14 And ActiveCell.Row < Trim(Str(Range("weight").Row) - 2)) Then Exit Sub
Cells(ActiveCell.Row + 1, 1).EntireRow.Insert
Range("P" & ActiveCell.Row + 1 & ",S" & ActiveCell.Row + 1 & ",V" & ActiveCell.Row + 1 & ",Y" & ActiveCell.Row + 1 & ",AB" & ActiveCell.Row + 1 & ",AE" & ActiveCell.Row + 1).FormulaR1C1 = "=MAX(0,RC[-1]-OFFSET(RC,0,-8-INT(COLUMN()/3)))"
ActiveSheet.PageSetup.PrintArea = "$A$1:$AG$" + Trim(Str(Range("weight").Row) + 2)
End Sub

par contre je ne comprend pas pourquoi tu démarres en if not car la condition de depart était if ??
 
Dernière édition:

hyo66

XLDnaute Nouveau
Re : critique et conseil

Bonsoir Staple

Je pensais t'avoir répondu !!
Il me semble que c'est pour conserver la ligne des totaux qui ne peut pas être supprimée
voir le post #48

Cordialement
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : critique et conseil

Bonjour à tous,

visiblement, tu as des questions en retard ;)

par contre je ne comprend pas pourquoi tu démarres en if not car la condition de depart était if

parce que plutôt que If Condition Then Je fais mes actions, j'ai mis
If Not Condition Then Exit Sub (je quitte la sub avant de faire les actions)
ça économise un End If (1 ligne)

A priori il y a un problème sur ton écriture
Cells(ActiveCell.Row + 1, 1).EntireRow.Insert

si je me base sur le code de départ, il me semble que

Code:
       activerow = ActiveCell.Row + 1
        Cells(activerow, 1).EntireRow.Insert

devrait être équivalent à ce que j'ai mis, non ?
 

hyo66

XLDnaute Nouveau
Re : critique et conseil

Bonsoir a tous
Je découvre la logique d'écriture avec vos remarques car j'interprète beaucoup avec ma logique
effectivement ce que tu dis est logique pour la double négation mais alors pourquoi ca coince sur la ligne en couleur ?:D:D:D:D

Y a t il une condition non respectée ?
 

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T