Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Insertion lignes + Copie formules ligne du dessous/dessus sur deux feuilles

lilidxb

XLDnaute Nouveau
Bonjour le forum!

J’imagine qu'elle a été traitée de nombreuse fois cependant tout ce que j'essaie d'adapter ne fonctionne pas. Je m'explique.
A l'aide d'un UserForm j'insère des données de façons différentes dans deux pages différentes.

Dans la page 1 "WORKLOAD" j'ai besoin de récupérer la formule de la colonne K de la ligne du dessous mais dans la deuxième feuille j'ai besoin qu'elle récupère les formules de la ligne du dessus de la colonne P a R.

Voici l'insertion de mes valeurs dans la page 1 intitule Workload:

VB:
Dim ligne As Integer
Worksheets("WORKLOAD").Select
ligne = Sheets("WORKLOAD").Range(Ma_valeur).Offset(1, 0).Row
Cells(ligne, 1).EntireRow.Select

   Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    Selection.Borders.LineStyle = xlContinuous
    Selection.Borders.ThemeColor = 1
    Selection.Interior.ColorIndex = 2
    Selection.Borders.TintAndShade = -0.249977111117893
    Selection.Borders.Weight = xlThin
 
Cells(ligne, 1) = ComboBox1.Value
Cells(ligne, 2) = ComboBox2.Value
Cells(ligne, 3) = TextBox1.Value
Cells(ligne, 4) = TextBox2.Value
Cells(ligne, 5) = TextBox3.Value
Cells(ligne, 6) = ComboBox4.Value
Cells(ligne, 7) = Eqpt.Value
Cells(ligne, 8) = ComboBox3.Value
Cells(ligne, 9) = ComboBox5.Value
Cells(ligne, 10) = ComboBox6.Value

Et voici le code d'insertion dans la deuxième page intitulee DP:
J'ai essayé d'adapter plusieurs codes dont celui-ci dessous mais ces derniers ne fonctionnent pas.

Code:
Dim i As Integer
Dim l As Integer

Application.EnableEvents = False
Application.ScreenUpdating = False

l = Sheets("DP").Range("A1000").End(xlUp).Row + 1

l.Offset(-1, 0).EntireRow.Copy Cells(l.Row, 1)

On Error Resume Next
l.EntireRow.SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues + xlLogical + xlErrors).ClearContents

With Sheets("DP")
i = .Range("A1000").End(xlUp).Row

.Range("K" & i + 1).Value = "EHO"
.Range("K" & i + 2).Value = "KO"
.Range("K" & i + 3).Value = "Delivery"
.Range("K" & i + 4).Value = "IS"
.Range("K" & i + 5).Value = "FSP"
.Range("K" & i + 6).Value = "CAV"

.Range("L" & i + 1).Value = Start1.Value
.Range("L" & i + 2).Value = Start2.Value
.Range("L" & i + 3).Value = Start3.Value
.Range("L" & i + 4).Value = Start4.Value
.Range("L" & i + 5).Value = Start5.Value
.Range("L" & i + 6).Value = Start6.Value

.Range("M" & i + 1).Value = SW1.Value
.Range("M" & i + 2).Value = SW2.Value
.Range("M" & i + 3).Value = SW3.Value
.Range("M" & i + 4).Value = SW4.Value
.Range("M" & i + 5).Value = SW5.Value
.Range("M" & i + 6).Value = SW6.Value

.Range("N" & i + 1).Value = Wor1.Value
.Range("N" & i + 2).Value = Wor2.Value
.Range("N" & i + 3).Value = Wor3.Value
.Range("N" & i + 4).Value = Wor4.Value
.Range("N" & i + 5).Value = Wor5.Value
.Range("N" & i + 6).Value = Wor6.Value


.Range("O" & i + 1).Value = Dur1.Value
.Range("O" & i + 2).Value = Dur2.Value
.Range("O" & i + 3).Value = Dur3.Value
.Range("O" & i + 4).Value = Dur4.Value
.Range("O" & i + 5).Value = Dur5.Value
.Range("O" & i + 6).Value = Dur6.Value

For i = l To l + 5

.Range("A" & i).Value = ComboBox1.Value
.Range("B" & i).Value = TextBox2.Value
.Range("C" & i).Value = ComboBox2.Value
.Range("D" & i).Value = TextBox1.Value
.Range("E" & i).Value = TextBox3.Value
.Range("f" & i).Value = ComboBox4.Value
.Range("G" & i).Value = Eqpt.Value
.Range("H" & i).Value = ComboBox3.Value
.Range("I" & i).Value = ComboBox5.Value
.Range("J" & i).Value = ComboBox6.Value

Next

End With
    
End Sub

Je vous joins bien sur mon fichier allégé et adapté en version de test.

Je précise que mon insertion fonctionne relativement bien mais lorsque je veux copier les formules tout plante.

Je ne sais pas quelle est la meilleure approche, faut il inserer une ligne de code copiant les formules (dessus/dessous) ou plutot inserer un code qui ecrit les formules directement et les place au bon endroit?

Merci beaucoup par avance !
 

Pièces jointes

  • TEST 1.xlsm
    434 KB · Affichages: 8

lilidxb

XLDnaute Nouveau
Petit up

J'ai reussi a trouver une solution pour la premiere page en utilisant ceci:

VB:
Cells(ligne, 11).FormulaLocal = "=IFNA(VLOOKUP(D" & ligne & ";Current_phase!A:B;2;);)"

Cependant pour le reste je n'y arrive pas, j'y suis depuis ce matin...

Merci !
 

Discussions similaires

Réponses
4
Affichages
450
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…