Macro Excel copier cellules
Résolu/Fermé
droux
Messages postés
3
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2008
-
19 nov. 2008 à 17:32
droux Messages postés 3 Date d'inscription mercredi 19 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008 - 20 nov. 2008 à 10:25
droux Messages postés 3 Date d'inscription mercredi 19 novembre 2008 Statut Membre Dernière intervention 20 novembre 2008 - 20 nov. 2008 à 10:25
A voir également:
- Macro Excel copier cellules
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Verrouiller cellules excel - Guide
- Excel cellule couleur si condition texte - Guide
5 réponses
Mike-31
Messages postés
18384
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
5 127
19 nov. 2008 à 18:30
19 nov. 2008 à 18:30
Salut,
En supposant que la colonne traitée est la colonne A le balayage commence en A1. Il est impératif qu’il n'y ai pas de cellule vide avant cette sélection.
Ensuite il faut arrêter le code, saisir le mot FIN sous le dernier mot à copier ou dans la dernière cellule que l'on souhaite arrêter la copie.
Il est possible d'écrire le code différemment, mais je pense qu’il te sera plus facile de l’interpréter.
Sub Balayage()
Range("A1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
If ActiveCell = "FIN" Then
Exit Sub
Else
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Do While ActiveCell.Value = ""
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Loop
Application.CutCopyMode = False
End If
End Sub
A+
En supposant que la colonne traitée est la colonne A le balayage commence en A1. Il est impératif qu’il n'y ai pas de cellule vide avant cette sélection.
Ensuite il faut arrêter le code, saisir le mot FIN sous le dernier mot à copier ou dans la dernière cellule que l'on souhaite arrêter la copie.
Il est possible d'écrire le code différemment, mais je pense qu’il te sera plus facile de l’interpréter.
Sub Balayage()
Range("A1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
If ActiveCell = "FIN" Then
Exit Sub
Else
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Do While ActiveCell.Value = ""
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Loop
Application.CutCopyMode = False
End If
End Sub
A+
droux
Messages postés
3
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2008
19 nov. 2008 à 19:12
19 nov. 2008 à 19:12
Wow merci beaucoup...
Juste quelques remarques.
Est-il normal de devoir appuyer à chaque fois pour copier une valeur differente?
Ex : par rapport à mon exemple, la macro ne copie que Ballon et je dois réappuyer pour qu'elle copie balle etc..ce qui en soit n'est pas très grave!
Par contre, je suppose que c'est normal que cette macro ne marche pas si je l'applique à la colonne B..mais c'est bien la le probleme, c'est que je dois repeter l'opération dans une dizaine de colonnes...
Peut-être tu aurais une solution à mon problème.
Encore merci
A+
Juste quelques remarques.
Est-il normal de devoir appuyer à chaque fois pour copier une valeur differente?
Ex : par rapport à mon exemple, la macro ne copie que Ballon et je dois réappuyer pour qu'elle copie balle etc..ce qui en soit n'est pas très grave!
Par contre, je suppose que c'est normal que cette macro ne marche pas si je l'applique à la colonne B..mais c'est bien la le probleme, c'est que je dois repeter l'opération dans une dizaine de colonnes...
Peut-être tu aurais une solution à mon problème.
Encore merci
A+
Mike-31
Messages postés
18384
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
5 127
19 nov. 2008 à 20:01
19 nov. 2008 à 20:01
Après mangé, je rectifie le code
A+
A+
Mike-31
Messages postés
18384
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
5 127
19 nov. 2008 à 21:10
19 nov. 2008 à 21:10
Voilà, Comme le code précédent, n’oublis pas de mettre à la fin de la colonne le mot FIN pour arrêter la macro.
Si tu veux l’adapter à la colonne B, modifies la première ligne
Range("A1").Select
Par
Range("B1").Select
La première cellule de démarrage A1 ou une autre ne doit pas être vide
Sub Balayage()
Range("A1").Select
Do While ActiveCell.Value <> "FIN"
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
If ActiveCell = "FIN" Then
Exit Sub
Else
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Do While ActiveCell.Value = ""
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Loop
Application.CutCopyMode = False
End If
Loop
End Sub
A+
Si tu veux l’adapter à la colonne B, modifies la première ligne
Range("A1").Select
Par
Range("B1").Select
La première cellule de démarrage A1 ou une autre ne doit pas être vide
Sub Balayage()
Range("A1").Select
Do While ActiveCell.Value <> "FIN"
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
If ActiveCell = "FIN" Then
Exit Sub
Else
Selection.Copy
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Do While ActiveCell.Value = ""
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Loop
Application.CutCopyMode = False
End If
Loop
End Sub
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
droux
Messages postés
3
Date d'inscription
mercredi 19 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2008
20 nov. 2008 à 10:25
20 nov. 2008 à 10:25
C'est un truc de fou!!
Merci mille fois! Tu peux pas savoir le temps que tu m'as fait gagné!
Chapeau bas...
Encore merci!
++
Merci mille fois! Tu peux pas savoir le temps que tu m'as fait gagné!
Chapeau bas...
Encore merci!
++