affichage feuille

P

philippe

Guest
Bonjour


Je reviens vers vous suite à un précédent poste mais avec plus de préçision.
Je lance une macro à partir d'un userform affiché sur la feuille 1 de mon classeur. Cette macro effectue des calculs à partir des données de la feuille 1 en feuille 2. En fin de macro, mon userform s'affiche sur la feuille 2.

J'aimerais rester sur la feuille 1.

Je joins ci-dessous une partie du code de ma macro qui je pense pose pb

Merci pour toute l'aide que vous pourrez m'apporter

Philippe

Code:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, num As Integer

j = 1
Application.Goto Sheets('feuil2').Range('C1:D1')
Selection.End(xlDown).Select
lig = ActiveCell.Row
num = lig
For i = lig To 2 Step -1
    Cells(j, 5).Value = (Cells(num, 3).Value - Cells(num - 1, 3).Value)
    Cells(j, 6).Value = (Cells(num, 4).Value - Cells(num - 1, 4).Value)
    j = j + 1
    num = num - 1
    Next i
Dim tablo1, tablo2 As Variant
Dim i2 As Integer
Dim ligne As Integer

tablo1 = Range('e1:e' & Range('e65536').End(xlUp).Row)
tablo2 = Range('f1:f' & Range('f65536').End(xlUp).Row)
ligne = 1

For i2 = UBound(tablo1) And UBound(tablo2) To 1 Step -1
    Range('e' & ligne) = tablo1(i2, 1)
    Range('f' & ligne) = tablo2(i2, 1)
    ligne = ligne + 1
Next i2


End Sub
 
P

philippe

Guest
Salut Fradouan

En fait j'avais bien pensé à mettre
sheets('feuil1').select, mais mon but n'était pas de revenir sur la feuille 1 mais d'y rester.
Du coup j'ai gardé ton idée, mais j'ai rajouté en début de macro
Application.ScreenUpdating = False
et du coup bingo, cà fonctionne !

merci pour le coup de pouce
Philippe
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Philippe, fradouan

le plus simple est quand même de faire les opérations sans sélectionner la feuille 2

Cordialement, A+
Code:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, num As Integer

j = 1
With Sheets('feuil2')
lig = .Range('C1:D1').End(xlDown).Row
num = lig
For i = lig To 2 Step -1
    .Cells(j, 5).Value = (.Cells(num, 3).Value - .Cells(num - 1, 3).Value)
    .Cells(j, 6).Value = (.Cells(num, 4).Value - .Cells(num - 1, 4).Value)
    j = j + 1
    num = num - 1
    Next i
Dim tablo1, tablo2 As Variant
Dim i2 As Integer
Dim ligne As Integer

tablo1 = .Range('e1:e' & .Range('e65536').End(xlUp).Row)
tablo2 = .Range('f1:f' & .Range('f65536').End(xlUp).Row)
ligne = 1

For i2 = UBound(tablo1) And UBound(tablo2) To 1 Step -1
    .Range('e' & ligne) = tablo1(i2, 1)
    .Range('f' & ligne) = tablo2(i2, 1)
    ligne = ligne + 1
Next i2
End With

End Sub
 

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz