[VBA Débutant] Macro -> Répéter la même action sur plusieurs lignes

Ilyes

XLDnaute Nouveau
Salut!

Voilà mon problème: j'ai enregistré une macro en faisant un exemple sur 3 lignes:
-> J'ai copié un nom en Agents!A2 dans une case en Couverture!C22
-> J'ai copié le résultat apparut en '2007'!F42 dans une autre case à côté du nom original en Agents!G2

J'ai fais ça d'A3 en G3 et d'A4 en G4.

Le problème c'est que je dois faire ça jusqu'en A2789, et je n'arrive pas à faire répeter l'action que j'ai enregistré (je n'y connais rien en codage).

Voilà le code:



Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/04/2011 par stageDRHformation
'

'
Range("A2").Select
Selection.Copy
Sheets("Couverture").Select
Range("C22:E22").Select
ActiveSheet.Paste
Sheets("2007").Select
Range("F42").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Agents").Select
Range("G2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Couverture").Select
Range("C22:E22").Select
ActiveSheet.Paste
Sheets("2007").Select
Range("F42").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Agents").Select
Range("G3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Couverture").Select
Range("C22:E22").Select
ActiveSheet.Paste
Sheets("2007").Select
ActiveWindow.SmallScroll Down:=3
Range("F42").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Agents").Select
Range("G4").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub




Est ce que vous pouvez m'aider?
Merci d'avoir lu!


Edit: Ah oui j'oubliais, je ne peux pas simplement copier la formule étant donner qu'elle contient déjà 3 cellules à formules qui contiennent elles mêmes des formules et c'est un véritable casse-tête
 

Pièces jointes

  • Calcul DIF Exemple.zip
    100.7 KB · Affichages: 173
Dernière édition:

Fred0o

XLDnaute Barbatruc
Re : [VBA Débutant] Macro -> Répéter la même action sur plusieurs lignes

Bonjour Iles et bienvenue sur le forum

Essaie ce code, ça devrait fonctionner si j'ai bien tout compris.
VB:
Sub Macro1()
    Dim i As Integer
    For i = 2 To Range("A" & Range("A65536").Row)
        Sheets("Couverture").Range("C22:E22") = Sheets("Agents").Range("A" & i)
        Sheets("Agents").Range("G" & i) = Sheets("2007").Range("F42")
    Next
End Sub

A+
 

Ilyes

XLDnaute Nouveau
Re : [VBA Débutant] Macro -> Répéter la même action sur plusieurs lignes

Merci de m'avoir répondu aussi rapidement!

Par contre, j'ai essayé d'executer la macro et ça ne fonctionne malheuresement pas.
Quand je saisis ou copie colle ton code, les pages ne s'affichent pas en rouge, est ce que cela a un rapport?

Merci
 

Hippolite

XLDnaute Accro
Re : [VBA Débutant] Macro -> Répéter la même action sur plusieurs lignes

Bonjour,
Voilà le petit dépannage :
Code:
Sub Macro1()
Dim i As Long, DerniereLigne As Long
DerniereLigne = Range("A65536").End(xlUp).Row
For i = 2 To DerniereLigne
    Sheets("Agents").Range("A" & i).Copy Destination:=Sheets("Couverture").Range("C22:E22")

    Sheets("2007").Range("F42").Copy
    Sheets("Agents").Range("G" & i).PasteSpecial Paste:=xlValues
Next i
End Sub
A+

Edit : Pas rafraichi Bonjour FredOo
 
Dernière édition:

brezak

XLDnaute Nouveau
Re : [VBA Débutant] Macro -> Répéter la même action sur plusieurs lignes

Bonjour J'ai un peu le meme problem, je veux apliquer cette macro sur toute les lignes qui sonr rensegnées dans la colone A.

Sub Macro1()
If Range ("A1").Value Like "*MIG*" Then
Range ("B2").Value = "[MIG]"
ElseIf Range ("A1").Value Like "*SUP*" Then
Range ("B2").Value = "[SUP]"
'ElseIf plein d'autres choses
Else
Columns("B2").Value = "[ERROR]"
End If
End Sub

D'avance merci
 

Discussions similaires

Réponses
3
Affichages
575

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé