amelioration de code

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

teamtat

XLDnaute Occasionnel
Bonjour,
etant débutant en VBA, je suis sur que mon code est optimisable (je sais pas si sa existe ce mot)

Code:
shtbase.Range("C11").Copy
shtpda.Range("A1").PasteSpecial

shtbase.Range("D11").Copy
shtpda.Range("B1").PasteSpecial

shtbase.Range("N11").Copy
shtpda.Range("C1").PasteSpecial

shtbase.Range("E11").Copy
shtpda.Range("D1").PasteSpecial

shtbase.Range("F11").Copy
shtpda.Range("E1").PasteSpecial

shtbase.Range("G11").Copy
shtpda.Range("F1").PasteSpecial

shtbase.Range("S11").Copy
shtpda.Range("G1").PasteSpecial

Merci
 
Re : amelioration de code

bonjour,
essaie

Dim shtbase As Worksheet, shtpda As Worksheet
Sheets("shtbase").Range("C11:f11").Copy
Sheets("shtpda").Range("A1").PasteSpecial
Sheets("shtbase").Range("s11").Copy
Sheets("shtpda").Range("g1").PasteSpecial
Application.CutCopyMode = False


MP59
 
Re : amelioration de code

Bonjour à tous

peut se faire également de cette façon :

Code:
Dim shtbase As Worksheet, shtpda As Worksheet
Set shtbase = Sheets("Feuil1")
Set shtpda = Sheets("Feuil2")
shtbase.Range("C11:D11").Copy Destination:=shtpda.Range("A1:B1")

A adapter pour le reste des cellules à copier...

bon après midi
@+
 
Re : amelioration de code

Bonjour,
Merci pour vos solutions

Code:
 shtbase.Range("C11,D11,E11,F11,G11,H11,N11,S11").Copy
shtpda.Range("A1").PasteSpecial

cela fonctionne mais je voudrais que la colonne N soit en 3eme position donc j'ai essayé ceci (j'ai mis le "N" en 3eme position mais cela ne change pas)

Code:
 shtbase.Range("C11,D11,N11,E11,F11,G11,H11,S11").Copy
shtpda.Range("A1").PasteSpecial

Quelqu'un sait pourquoi ?
 
Re : amelioration de code

Je pourrai pas attribuer une cellule a une autre
par exemple C11 a A1, D11 a B1, N11 a C1, etc ...

j'ai essayé ce morceau de code mais cela ne fonctionne pas

Code:
shtbase.Range("C11,D11,N11,E11,F11,G11,H11,S11").Copy
shtpda.Range("A1,B1,C1,D1,E1,F1,G1,H1").PasteSpecial
 
Re : amelioration de code

Re

une autre façon de procéder, les tableaux doivent avoir le même nombre d'élément :

Code:
Sub test()
Dim t1() As Variant, t2() As Variant, i As Byte
t1 = Array("C11", "D11", "N11", "E11", "F11", "G11", "H11", "S11")
t2 = Array("A1", "B1", "C1", "D1", "E1", "F1", "G1", "H1")
For i = LBound(t1, 1) To UBound(t1, 1)
    Sheets("FeuilleDestination").Range(t2(i)).Value = Sheets("FeuilleSource").Range(t1(i)).Value
Next i
End Sub
 
Re : amelioration de code

Merci cela fonctionne parfaitement
maintenant il faut que je copie les données des colonnes et c'est toujours pareil avec mon code je n'est pas la colonne N en 3eme position

Code:
For i = 8 To 16
If shtbase.OLEObjects("CheckBox" & i).Object.Value Then shtbase.Range("C" & i + 4 & ",D" & i + 4 & ",N" & i + 4 & ",E" & i + 4 & ",F" & i + 4 & ",G" & i + 4 & ",S" & i + 4).Copy shtpda.Range("A" & i - 6)
Next i
 
Re : amelioration de code

Bonjour,

un petit fichier en pièce jointe, ainsi que précisément le résultat que tu attends nous ferait sans doute gagner du temps, en l'état nous risquons de tourner en rond longtemps...

bonne journée
@+
 
Re : amelioration de code

Bonjour,

essaye peut être en replacant les colonnes en fin de procédure...

Code:
For i = 1 To 8
    If shtbase.OLEObjects("CheckBox" & i).Object.Value Then shtbase.Range("A" & i + 4 & ",B" & i + 4 & ",F" & i + 4 & ",C" & i + 4 & ",D" & i + 4 & ",E" & i + 4 & ",G" & i + 4).Copy shtpda.Range("A" & i)
Next i

With shtpda
    .Columns("C:C").Insert Shift:=xlToRight
    .Columns("G:G").Cut Destination:=Columns("C:C")
    .Columns("G:G").Delete Shift:=xlToLeft
End With

bonne journée
@+
 
Re : amelioration de code

Bonsoir Forum 🙂
Un travail sur les Checkboxes qui m'intéresse beaucoup.
Malgré ce qu'il y a dans ce fil et dans bien d'autres,
j'arrive pas adapter pour mon projet, 😕 alors à tout hasard je réponds.
J'ai mis des explications en Feuil1 et 3

Merci d'avance aux experts.
 

Pièces jointes

- 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
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
N
Réponses
10
Affichages
5 K
Nicocotte125
N
I
  • Question Question
Réponses
1
Affichages
3 K
Réponses
5
Affichages
902
R
Réponses
0
Affichages
3 K
R
C
Réponses
1
Affichages
2 K
D
Réponses
6
Affichages
2 K
D
C
Réponses
8
Affichages
2 K
Genii
G
M
Réponses
3
Affichages
1 K
msauvegrain
M
Retour