Insertion et copie macro Excel [Résolu]

Messages postés
7
Date d'inscription
mardi 23 septembre 2008
Statut
Membre
Dernière intervention
25 septembre 2008
- - Dernière réponse : jrivet
Messages postés
7401
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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
3
Merci
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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dedenet2
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
3
Merci
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+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
45
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jrivet
Messages postés
7
Date d'inscription
mardi 23 septembre 2008
Statut
Membre
Dernière intervention
25 septembre 2008
0
Merci
Merci, c'est super génial ça marche. Je vais utiliser la seconde réponse qui est plus simple.
Commenter la réponse de cs_catbou
Messages postés
7
Date d'inscription
mardi 23 septembre 2008
Statut
Membre
Dernière intervention
25 septembre 2008
0
Merci
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....
Commenter la réponse de cs_catbou