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

fridrou

XLDnaute Nouveau
bonjour,

je debute dans la programmation vba,

je cherche à realiser une macro qui me permettrait de transferer les cellules d'une premiere colonne dans celles d'une seconde mais espacées de 3 cellules vides.

je voudrais donc réaliser une itération du procédé seulement je ne parviens pas a definir mon argument ou objet de départ.(l'aide excel n'est pas top)

je vous met mes lignes:

Sub Macro2(i)
'
' Macro2 Macro
' Macro enregistrée le 11/04/2008 par S590631
'

'
Range("Bi").Select
Selection.Copy
Range("A(i+(i-1)*4").Select
ActiveSheet.Paste

End Sub

i n'est pas définit: comment faire?
le reste est-il suffisant?
 
Re : programmation vba

bonjour,

voici une approche

Code:
Sub Macro2(i)
'
' Macro2 Macro
' Macro enregistrée le 11/04/2008 par S590631
'

'
    Range("B" & i).Copy Destination:=Range("A" & (i + (i - 1) * 4))


End Sub

quant à la valeur de i, il faut la déterminer avant d'appeler la macro.

Bon courage
 
Re : programmation vba

Une autre solution:

Code:
Sub Macro2(i)
'
' Macro2 Macro
' Macro enregistrée le 11/04/2008 par S590631
'

'   Copiera B i dans Trois colonnes à droite
    Range("B" & i).Copy Destination:=Range("B" & i).offset( , 3)

End Sub

bon appetit.

Je vais manger alors si je ne réponds pas tout de suite... d'autres le feront certainement
 
Re : programmation vba

Bonjour,

En fait ton écriture suppose que tu appelles ta macro par une autre où tu définit i...

Autrement :
Pour déclarer i inscrire en tête de ta procédure :
Code:
Sub Macro2()
Dim i as long
ActiveCell.Copy Destination:=ActiveCell.Offset(0, 3)
End Sub
Cordialement

Edit: Bonjour à tous, téléphone quand tu nous tiens... pas rafraichi.
 
Dernière édition:
Re : programmation vba

Pour finir maintenant que le problème des lignes (i) est posé:

deux solutions:

1 de ligne à ligne ( prendra plus de temps)

Code:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 11/04/2008 par S590631
'

'   Copiera B i dans Trois colonnes à droite c'est à dire dans colonne F
 For i= 1 to 500
    Range("B" & i).Copy Destination:=Range("F" & i)
 next i

End Sub


Deuxième solution plus rapide et plus simple, en copiant toute la plage d'un bloc:
Code:
Sub Macro2(i)
'
' Macro2 Macro
' Macro enregistrée le 11/04/2008 par S590631
'

'   Copiera B i dans Trois colonnes à droite
    Range("B1:500").Copy Destination:=Range("F1")

End Sub

Cette fois ci j'y vais
 
Re : programmation vba

sur le programme de francois il apparait argument non facultatif lorsque je l'execute et c'est un probleme recurent sur presque tout ce que j'ai essayé.

sur celui qui suit, l'action ne se produit que sur une seul cellule et pas sur toute ma colonne?? comment faire pour généraliser l'action?

merci
 
Re : programmation vba

merci beaucoup à vous tous, cela fonctionne, j'obtiens ce que je souhaitais.

vous pouvez etre fiers de vous, vous etes le spremiers qui me permettez de reussir un programme info en 23 ans en comprenant ce que je fais.

merci encore
 
- 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
15
Affichages
1 K
Réponses
0
Affichages
387
Réponses
5
Affichages
458
Retour