Formule sur vba

Résolu
Si_bbr Messages postés 27 Date d'inscription mardi 12 juillet 2022 Statut Membre Dernière intervention 29 septembre 2023 - Modifié le 21 sept. 2023 à 11:45
NonoM45 Messages postés 268 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 21 mars 2024 - 23 sept. 2023 à 06:08

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

NonoM45 Messages postés 268 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 21 mars 2024
22 sept. 2023 à 06:04

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+

0
Si_bbr Messages postés 27 Date d'inscription mardi 12 juillet 2022 Statut Membre Dernière intervention 29 septembre 2023
22 sept. 2023 à 16:01

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 !

1
NonoM45 Messages postés 268 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 21 mars 2024 > Si_bbr Messages postés 27 Date d'inscription mardi 12 juillet 2022 Statut Membre Dernière intervention 29 septembre 2023
23 sept. 2023 à 06:08

Pensez à marquer ma réponse comme solution ;-)

0