Parenthèses à la fin d'une formule

Bonsoir à tous

Je ne sais pas chez-vous mais ici c'est encore l'hiver (ressenti -22C)

J'ai un petit problème avec une macro enregistrée manuellement.

J'imagine que pour le résoudre je devrais construire une macro VBA mais j'ai de la difficulté à construire le tout.

Voici la problématique :

J'ai 125 fichiers de 1500 lignes que je dois corriger. Dans la colonne C il y a déjà une référence à un autre onglet que je ne peux pas recopier en tirant sur la formule, je dois donc conserver cette référence. Je désire ajouter une formule =Si(estvide(a:a);"";garde la référence actuelle et ajoute une parenthèse à la fin.

Manuellement avec cherche et remplace ça va mais je ne suis pas capable d'insérer une parenthèse à la fin de la formule.

Si quelqu'un pouvait me pister sur le comment, ce serait bien gentil.

J'ai mis un fichier en pièces jointes

MErci d'avance

Spage

16test-1.xlsm (16.77 Ko)

Bonjour spage

à tester

amicalement

Pierrot

5test-1.xlsm (16.72 Ko)

Bonjour spage,

bonjour Pierre, le forum,

Voici une macro pour placer la formule souhaitée en colonne D

14test.xlsm (20.88 Ko)

A+

Merci Pierre,

Merci Frangy,

J'ai testé ta macro Frangy, C'est parfait et ça fonctionne.

Cependant, et c'est ma faute, dans mon fichier j'ai oublié de mentionner qu'il y avait une ligne vide entre chaque bloc

J'ai essayé de bypasser le .End(xlDown)) mais le bogue doit venir du fait qu'il n'y a pas de référence dans la ligne vide (celle en vert).

Est-ce que je peux lui dire que s'il n'y a pas de référence dans la colonne C de ne rien faire, jusqu'à C1500

Merci de votre patience et de votre aide

spage

11test.xlsm (27.20 Ko)

Bonjour,

J'ai modifié le code afin de prendre en compte :

  • la plage comprise entre la ligne 2 et la dernière ligne renseignée de la colonne C,
  • uniquement les cellules qui contiennent une formule (test sur le signe =).
Sub Test()
    With Sheets("P1")
        For Each Cel In Range(.Range("C2"), .Range("C" & Rows.Count).End(xlUp))
            If Left(Cel.Formula, 1) = "=" Then
                Cel.Offset(0, 1).Formula = "=IF(LEN(" & Cel.Offset(0, -2).Address(0, 0) & ")=0,""""," & Right(Cel.Formula, Len(Cel.Formula) - 1) & ")"
            End If
        Next Cel
    End With
End Sub

A+

Rebonjour Frangy,

C'est exactement cela.

Merci pour ton implication.

au plaisir

spage

Rechercher des sujets similaires à "parentheses fin formule"