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

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
 

fanfan38

XLDnaute Barbatruc
Re : programmation vba

Bonjour
For i=1 to range("a65536").end(xlup).row
Range("B" & i).Copy Destination:=Range("A" & (i + (i - 1) * 4))
next

A+ François
 
Dernière édition:

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
962
Réponses
0
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…