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

XL 2016 Amélioration vba

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

Guismo33

XLDnaute Occasionnel
Bonjour a tous,
je ne suis pas très fort en Vba , mais j'ai réussi a faire celle ci qui es un peut longue.
je souhaiterais savoir si ont peut améliorer cette Vba.


Sub REUNION1()
Dim i As Integer, lig As Long, lig2 As Long
With Sheets("R1").Select
lig = Cells(3, Columns.Count).End(xlToLeft).Column + 1
lig2 = Cells(38, Columns.Count).End(xlToLeft).Column + 1
For i = 1 To 6
Cells(3 + i, lig).Value = Cells(3 + i, 24).Value
Cells(10 + i, lig).Value = Cells(10 + i, 24).Value
Cells(17 + i, lig).Value = Cells(17 + i, 24).Value
Cells(24 + i, lig).Value = Cells(24 + i, 24).Value
Cells(31 + i, lig).Value = Cells(31 + i, 24).Value
Cells(38 + i, lig).Value = Cells(38 + i, 24).Value
Cells(45 + i, lig).Value = Cells(45 + i, 24).Value
Cells(38 + i, lig2).Value = Cells(38 + i, 24).Value
Cells(45 + i, lig2).Value = Cells(45 + i, 24).Value
Next i
Cells(3, lig) = Range("a1").Value
Cells(38, lig2) = Range("a1").Value
End With
Range("Tiercé").ClearContents
Range("compteur") = Range("compteur") + 1
End Sub


merci a vous



bien à vous
 
Bonjour Guismo, bonjour le forum

Erreur
:
With Sheets("R1").Select
doit être :
With Sheets("R1")

ensuite, tout ce qui fait référence à cet onglet doit être précédé d'un point. Comme je ne sais pas de quoi on parle tu adapteras :

VB:
Sub REUNION1()
Dim i As Integer, lig As Long, lig2 As Long

With Sheets("R1")
    lig = .Cells(3, Columns.Count).End(xlToLeft).Column + 1
    lig2 = .Cells(38, Columns.Count).End(xlToLeft).Column + 1
    For i = 1 To 6
        .Cells(3 + i, lig).Value = .Cells(3 + i, 24).Value
        .Cells(10 + i, lig).Value = .Cells(10 + i, 24).Value
        .Cells(17 + i, lig).Value = .Cells(17 + i, 24).Value
        .Cells(24 + i, lig).Value = .Cells(24 + i, 24).Value
        .Cells(31 + i, lig).Value = .Cells(31 + i, 24).Value
        .Cells(38 + i, lig).Value = .Cells(38 + i, 24).Value
        .Cells(45 + i, lig).Value = .Cells(45 + i, 24).Value
        .Cells(38 + i, lig2).Value = .Cells(38 + i, 24).Value
        .Cells(45 + i, lig2).Value = .Cells(45 + i, 24).Value
    Next i
    .Cells(3, lig) = .Range("a1").Value
    .Cells(38, lig2) = .Range("a1").Value
End With
Range("Tiercé").ClearContents
Range("compteur") = Range("compteur") + 1
End Sub
 
bonjour robert,

donc si je comprend bien c'est que dés que tu utilise WITH ,il faut utiliser le point devant Cells
je viens d apprendre ,je ne ferais plus la même erreur la prochaine fois.
en te remerciant..


bien à vous
 
Bonjour Robert,

suite a ta réponse Vba j'ai pu améliorer ma Vba , mais voila sur la nouvelle
je veux juste copier sans les formules :


Sub REUNION2()
Dim i As Integer, lig As Long, lig2 As Long
With Sheets("R2")
col = .Cells(3, Columns.Count).End(xlToLeft).Column + 1
.Range("Selection2").Copy Destination:=.Cells(3, col) <<-------ICI IL DOIT AVOIR UNE FIN DE FORMULE
.Cells(3, col) = .Range("a1").Value

End With
Range("Tiercé").ClearContents
Range("compteur") = Range("compteur") + 1
MsgBox "Terminée"
End Sub

merci

bien à vous
 
- 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

Discussions similaires

Réponses
5
Affichages
703
Réponses
2
Affichages
427
Réponses
1
Affichages
265
Réponses
4
Affichages
580
Réponses
10
Affichages
531
Réponses
5
Affichages
477
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…