Remplacement de ligne avec formule par des valeurs

Bonjour,

Ayant créé un classeur excel pour la gestion commerciale d'une société. Pourriez-vous m'aider à créer une macro par VBA pour remplacer toutes les formules d'une ou plusieurs lignes spécifiques contenant des formules par des valeurs en dur, dans le but d'alléger le fichier et optimiser la performance du fichier.

Plus précisément, je souhaiterai dans mon cas, remplacer uniquement les lignes de certaines commandes dans l'onglet "ORDER_DETAILS SALE" (clôturées, exemple numéro de commande PO01916371) en valeur sans formule.

Merci

8test.zip (309.61 Ko)

Bonjour, Et comment on sait que la commande PO01916371est "Cloturée" ?

Bonjour, salut Xmenpl !

Je n'ai pas ouvert votre fichier, ma proposition est donc à adapter. Il s'agit d'une macro événementielle, c'est à dire que son exécution est conditionnée à un événement (ici un double clique en colonne A) . Le code est à placer dans le module VBA de la feuille concernée :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then 'Colonne A uniquement
    Target.EntireRow.Value = Target.EntireRow.Value 'Reporte les valeurs uniquement
    Target.EntireRow.Interior.ColorIndex = 43 'Applique un fond vert clair
    Cancel = True 'Annule le double clique
End If
End Sub

Xmenpl,

Pour l'instant, il y a uniquement l'information dans la colonne "LIVRE" si = YES.

Re bonjour, Si pas d'info "Cloturée" pas de remplacement automatique.

Reste la solution de Pédro le remplacement s'effectue après double clic sur une des cellules de la colonne A pour la ligne que l'on souhaite remplacer.

( Bien vu Pédro )

Bonjour,

Merci beaucoup, la macro évènementielle fonctionne très bien.

Et dans le cas où j'ajouterai l'info "Clôturée", comment je pourrai implémenter le remplacement automatique ?

Xmenpl,

Pour que je puisse effectué le remplacement en automatique, j'ai implémenté l'information "clôturée" en colonne T. Si une commande est clôturée, la cellule contiendra "YES". Comment puis-je adapté la macro évènementielle de Pedro ?

Je vous remercie par avance

Dans ce cas le principe est de faire une boucle sur les cellules de la colonne T pour vérifier si l'info "Yes" est contenue.

Exemple macro ajoutée à un bouton.

12testretour.zip (316.14 Ko)
Sub Macro1()

' ARCHIVER LIGNES CLOTUREES option YES colonne T

'On trouve le nombre de ligne total du tableau
Dim DERLIGNE As Long
DERLIGNE = Worksheets("ORDER_DETAILS SALE").Range("A65536").End(xlUp).Row

'On créé une boucle sur la colonne T pour vérifier son contenu et si "YES"
'On utilise le code de Pedro.

For i = 6 To DERLIGNE
If Cells(i, 20).Value = "YES" Then
Rows(i).Value = Rows(i).Value 'Reporte les valeurs uniquement
Rows(i).Interior.ColorIndex = 43 'Applique un fond vert clair
End If
Next i

End Sub

Merci !

Ca fonctionne, et c'est un gain de temps considérable plutôt que de le faire ligne par ligne sachant que dans le fichier à imputer, j'ai des milliers de lignes.

Je vais pouvoir comparer la performance du fichier avec les lignes de formules supprimées.

Merci !

Rechercher des sujets similaires à "remplacement ligne formule valeurs"