Formule sur vba
Résolu
Si_bbr
Messages postés
28
Statut
Membre
-
NonoM45 Messages postés 967 Statut Membre -
NonoM45 Messages postés 967 Statut Membre -
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
A voir également:
- Formule sur vba
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
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 Sub
Rien 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+
Merci beaucoup le code fonctionne a merveille ????
Et effectivement il est bien plus clair !
Je ne maîtrise pas vba, alors je bidouille les Marcos et ça me fait des codes a rallonge !
Pensez à marquer ma réponse comme solution ;-)