Insertion et copie macro Excel

Résolu
cs_catbou Messages postés 7 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 25 septembre 2008 - 23 sept. 2008 à 21:56
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 24 sept. 2008 à 08:00
Bonjour,

Je souhaite par une macro Excel, modifier mon fichier. J'ai très peu de connaissance VB 6, et je n'arrive pas à finaliser ma macro.
Lorsque ma colonne E commence par 6 j'insère une ligne en dessous, ça, j'y arrive  :
  Dim lig As Long
  Range("E2").Select
  reprise:
 ActiveCell.Offset(1, 0).Select
 If Len(ActiveCell) = 0 Then Exit Sub
 If Left(ActiveCell.Value, 1) = "6" Then
 ActiveCell.Rows("2:2").EntireRow.Insert Shift:=xlDown
 ActiveCell.Offset(1, 0).Select
 End If
 GoTo reprise

Mais je veux ensuite que ma ligne où il y a le 6, se copie sur la ligne que je viens d'insérer et qu'il me "saisisse" sur cette même ligne dans la colonne G : "Toto".
Et là je bloque sur la copie de ma ligne !!!

Merci de votre aide

5 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
23 sept. 2008 à 22:32
Bonjour ,

Voici pour la copy dela ligne:

  Dim lig As Long
 
  Range("E2").Select
reprise:
 ActiveCell.Offset(1, 0).Select
 If Len(ActiveCell) = 0 Then Exit Sub
 If Left(ActiveCell.Value, 1) = "6" Then
 ActiveCell.Rows("2:2").EntireRow.Insert Shift:=xlDown
 'Copie de toute la ligne
 Range("a" & ActiveCell.Row & ":" & "iv" & ActiveCell.Row).Copy _
 Range("a" & ActiveCell.Row + 1 & ":" & "iv" & ActiveCell.Row + 1)
 
 ActiveCell.Offset(1, 0).Select
 End If
 GoTo reprise
-------------------------------------------------

A++
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
24 sept. 2008 à 00:18
Salut,

en plus simple et plus court :

  Dim lig As Long
  Range("E2").Select
  reprise:
     ActiveCell.Offset(1, 0).Select
     If Len(ActiveCell.Value) = 0 Then Exit Sub
     If Left(ActiveCell.Value, 1) = "6" Then
         Rows(ActiveCell.Row).Copy 'copie de la ligne de la cellule active
         Rows("2").Insert Shift:=xlDown 'insertion et collage simultané
         ActiveCell.Offset(1, 0).Select
     End If
 GoTo reprise

A+
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 sept. 2008 à 08:00
Salut,
>[../auteur/CATBOU/1481804.aspx catbou] : Si tu estimes que ton problème est résolu, penses à appuyer sur réponse acceptée sur le OU les posts qui t'ont aider à avancer.

@+: Ju£i€n
Pensez: Réponse acceptée
3
cs_catbou Messages postés 7 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 25 septembre 2008
24 sept. 2008 à 07:13
Merci, c'est super génial ça marche. Je vais utiliser la seconde réponse qui est plus simple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_catbou Messages postés 7 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 25 septembre 2008
24 sept. 2008 à 07:15
Merci, c'est super génial ça marche.
J'avais essayé cette solution mais en mettant ma ligne de copie après Activecell.offset et rien ne se passait....
0
Rejoignez-nous