Inserer une formule dans une nouvelle ligne

LASSAAD

XLDnaute Nouveau
Salut tous

Veuillez trouver en fichier attaché, que nous voulant insérer les formules des colonnes Y, Z et AA automatiquement dans la ligne où on écrit ou on modifie des valeurs dans cette ligne.

Le but de cette demande est d’alléger la taille de fichier suite à la répétition des formules pour tous les lignes (maintenant on a atteint 30 000 lignes).

Donc, lorsqu'on écrit dans la ligne, la formule est activée, si on se déplace vers une autre ligne, la formule devient une valeur fixe et la formule s'active dans la nouvelle ligne.
 

Pièces jointes

  • Warranty tracking sheet - RAH RD_STA+ALT _2011_III (new version).zip
    58 KB · Affichages: 32

kjin

XLDnaute Barbatruc
Re : Inserer une formule dans une nouvelle ligne

Bonjour,
Autant mettre le résultat en vba directement me semble t-il
Adapter les formules en conséquence
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 25 Then
    'Application.EnableEvents = False
    i = Target.Row
    With Cells(i, 25)
        .Formula = "=IF(COUNTIF('X:\xxx\[Warranty tracking sheet - RAH RD_STA+ALT _2011_III.xls]TOP Warranty'!$A$3:$A$66;L" & i & _
        ")*AND(K" & i & "=""DD"";P" & i & "=1);""TOP WARRANTY"";"""")"
        .Value = IIf(Not IsError(.Value), .Value, "")
    End With
    With Cells(i, 26)
        .Formula = "=IF(COUNTIF('TOP Warranty'!$G$3:$G$48;L" & i & _
        ")*AND(K" & i & "=""DD"";P" & i & "=1);""Német TOP W."";"""")"
        .Value = IIf(Not IsError(.Value), .Value, "")
    End With
    With Cells(i, 27)
        .Formula = "=IF(COUNTIF('TOP Warranty'!$L$3:$L$110;L" & i & _
        ")*AND(K" & i & "=""DG"";P" & i & "=1);""Tunéz TOP w."";"""")"
        .Value = IIf(Not IsError(.Value), .Value, "")
    End With
    'Application.EnableEvents = True
End If
End Sub
A+
kjin
 

kjin

XLDnaute Barbatruc
Re : Inserer une formule dans une nouvelle ligne

Bonjour
J'ai supprimé les formules
Alt+F11 pour acceder au code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, n, y, x
If Target.Column < 25 And Target.Row > 1 Then
    i = Target.Row
    n = Cells(i, 12)
    y = IIf(Cells(i, 11) = "DD" And Cells(i, 16) = 1, 1, 0)
        x = Application.CountIf(Sheets("TOP Warranty").Range("A3:A66"), n)
        Cells(i, 25) = IIf(x * y > 0, "TOP WARRANTY", "")
        x = Application.CountIf(Sheets("TOP Warranty").Range("G3:G48"), n)
        Cells(i, 26) = IIf(x * y > 0, "Német TOP W", "")
    y = IIf(Cells(i, 11) = "DG" And Cells(i, 16) = 1, 1, 0)
        x = Application.CountIf(Sheets("TOP Warranty").Range("L3:L110"), n)
        Cells(i, 27) = IIf(x * y > 0, "Tunéz TOP W", "")
End If
End Sub
A+
kjin
 

Pièces jointes

  • Lassaad.zip
    59.4 KB · Affichages: 31

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 938
Membres
101 844
dernier inscrit
pktla