programmation vba

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?
 
G

Guest

Guest
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
 
G

Guest

Guest
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
 

Spitnolan08

XLDnaute Barbatruc
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:
G

Guest

Guest
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
 

fridrou

XLDnaute Nouveau
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
 

fridrou

XLDnaute Nouveau
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
 

Discussions similaires

  • Résolu(e)
Microsoft 365 pb formule vba
Réponses
15
Affichages
922
Réponses
0
Affichages
226

Statistiques des forums

Discussions
313 344
Messages
2 097 337
Membres
106 916
dernier inscrit
Soltani mohamed