Formule sur vba
Résolu
Si_bbr
Messages postés
28
Statut
Membre
-
NonoM45 Messages postés 1020 Date d'inscription Statut Membre Dernière intervention -
NonoM45 Messages postés 1020 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un soucis sur une macro que j'ai faite
Elle fonctionne uniquement si mon document a 2 ligne ou plus, comment faire pour que la formule fonctionne également si il n'y a qu'une seule ligne ?
Sub clem()
'
' dispor Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+D
'
Range("S6").Select
ActiveCell.FormulaR1C1 = "=RC[-4]+(RC[-3]*126)"
Dim dernligne As Long
dernligne = Range("R" & Rows.Count).End(xlUp).Row
Range("S6").AutoFill Destination:=Range("S6:S" & dernligne)
Range("S6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("O6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("S:S").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("P:P").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
End Sub
Merci d'avance
Android / Chrome 117.0.0.0
1 réponse
-
Bonjour Si_bbr
Outre le fait que le code peut être optimisé ainsi
Sub clem() ' dispor Macro ' Touche de raccourci du clavier: Ctrl+Shift+D Dim DerLigne As Long ' Avec la feuille nommée With Sheets("NomDeLaFeuille") DerLigne = .Range("R" & Rows.Count).End(xlUp).Row .Range("S6:S" & DerLigne).FormulaLocal = "=O6+(P6*126)" .Range("S6:S" & DerLigne).Copy .Range("O6").PasteSpecial Paste:=xlPasteValues .Columns("S:S").Delete Shift:=xlToLeft .Columns("P:P").Delete Shift:=xlToLeft End With End SubRien n'empêche qu'il fonctionne s'il n'y a qu'une ligne
Le code travaille seulement à partir de la ligne 6 est-ce bien la 1ère ligne des formules ?
A+