• Initiateur de la discussion Initiateur de la discussion philippe
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
909
Réponses
4
Affichages
732
Réponses
15
Affichages
782
Retour