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

Code de copie pour 2 feuilles

  • Initiateur de la discussion Initiateur de la discussion sev
  • 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 !

S

sev

Guest
Bonsoir, je ne comprends pas pourquoi lorsque je valide avec la feuille "saisie" active les copies des valeures de l'userform fonctionnent bien alors que si je saisie à partir de la feuille " PEL" seul se copient les valeures dans la feuille " PEL".

Je voudrais qu'elles se copient dans les 2 feuilles.

Voici le code :

Private Sub VIREZ_Click()


Dim DerLigne As Long, x
Dim Ws As Worksheet
Dim LASTLIG As Integer
For Each Ws In Sheets(Array("saisie"))


With Sheets("saisie")

DerLigne = Ws.Range("A65536").End(xlUp).Row + 1
If ComboBox4 = "Virement" Then Ws.Range("A" & DerLigne) = TextBox1
If ComboBox4 = "Virement" Then Ws.Range("B" & DerLigne) = TextBox2
If ComboBox4 = "Virement" Then Ws.Range("C" & DerLigne) = TextBox3
If ComboBox4 = "Virement" Then Ws.Range("H" & DerLigne) = "Virement vers " & ComboBox2
If ComboBox4 = "Virement" Then Ws.Range("O" & DerLigne) = ComboBox1.Value
If ComboBox4 = "Virement" Then Ws.Range("K" & DerLigne) = TextBox4 / 100
If ComboBox4 = "Virement" Then Ws.Range("J" & DerLigne) = "v"
If ComboBox4 = "Virement" Then Ws.Range("i" & DerLigne) = "Virement"


End With

With Sheets("PEL")

LASTLIG = .Range("A65536").End(xlUp).Row + 1
If ComboBox4 = "Virement" Then Range("A" & LASTLIG) = TextBox1
If ComboBox4 = "Virement" Then Range("B" & LASTLIG) = TextBox2
If ComboBox4 = "Virement" Then Range("C" & LASTLIG) = TextBox3
If ComboBox4 = "Virement" Then Range("E" & LASTLIG) = ComboBox1
If ComboBox4 = "Virement" Then Range("M" & LASTLIG) = "PEL"
If ComboBox4 = "Virement" Then Range("K" & LASTLIG) = TextBox4 / 100
If ComboBox4 = "Virement" Then Range("H" & LASTLIG) = "v"
If ComboBox4 = "Virement" Then Range("G" & LASTLIG) = "Virement"
If ComboBox4 = "Virement" Then Range("F" & LASTLIG) = "Virement de " & ComboBox1

End With


Next

ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = False
ComboBox3.Visible = False

End Sub
 
Re : Code de copie pour 2 feuilles

Bonsoir,
tu as un problème de "point" dans with... end with.

les corrections en rouge:

Code:
Private Sub VIREZ_Click()


Dim DerLigne As Long, x
Dim Ws As Worksheet
Dim LASTLIG As Integer
For Each Ws In Sheets(Array("saisie"))


With Sheets("saisie")

DerLigne = [B][COLOR="Red"].[/COLOR][/B]Range("A65536").End(xlUp).Row + 1
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("A" & DerLigne) = TextBox1
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("B" & DerLigne) = TextBox2
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("C" & DerLigne) = TextBox3
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("H" & DerLigne) = "Virement vers " & ComboBox2
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("O" & DerLigne) = ComboBox1.Value
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("K" & DerLigne) = TextBox4 / 100
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("J" & DerLigne) = "v"
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("i" & DerLigne) = "Virement"


End With

With Sheets("PEL")

LASTLIG = .Range("A65536").End(xlUp).Row + 1
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("A" & LASTLIG) = TextBox1
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("B" & LASTLIG) = TextBox2
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("C" & LASTLIG) = TextBox3
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("E" & LASTLIG) = ComboBox1
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("M" & LASTLIG) = "PEL"
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("K" & LASTLIG) = TextBox4 / 100
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("H" & LASTLIG) = "v"
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("G" & LASTLIG) = "Virement"
If ComboBox4 = "Virement" Then [B][COLOR="Red"].[/COLOR][/B]Range("F" & LASTLIG) = "Virement de " & ComboBox1

End With


Next

ListBox2.Visible = False
ListBox3.Visible = False
ListBox4.Visible = False
ComboBox3.Visible = False

End Sub
 
Re : Code de copie pour 2 feuilles

Bonsoir,
re Skoobi,
Code:
If ComboBox4 = "Virement" Then 
.Range("A" & DerLigne) = TextBox1
.Range("B" & DerLigne) = TextBox2
 .Range("C" & DerLigne) = TextBox3
.Range("H" & DerLigne) = "Virement vers " & ComboBox2
.Range("O" & DerLigne) = ComboBox1.Value
.Range("K" & DerLigne) = TextBox4 / 100
.Range("J" & DerLigne) = "v"
.Range("i" & DerLigne) = "Virement"

End With
...
est suffisant. Il ne sert à rien de répéter toutes les lignes le test puisque c'est le même.

Cordialement

Edit : Merci à Skoobi d'avoir ajouté le End If😉 dans son post suivant
 
Dernière édition:
Re : Code de copie pour 2 feuilles

Il manque un chti qqchose:

😉
 
Re : Code de copie pour 2 feuilles

Merci Skoobi , grace à toi je progresse petit à petit dans mes connaissances .
Dans cette jungle du VBA tout devient rangé simplement par votre aide.
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
10
Affichages
661
Réponses
7
Affichages
454
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…