Saisie/copie-resaisie ^m cellule/autre copie
Fermé
berlinesoso
Messages postés
1
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
24 juillet 2008
-
24 juil. 2008 à 11:58
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 - 25 juil. 2008 à 15:57
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 - 25 juil. 2008 à 15:57
A voir également:
- Saisie/copie-resaisie ^m cellule/autre copie
- Copie cachée - Guide
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Copie rapide - Télécharger - Gestion de fichiers
- Copie d'écran windows - Guide
5 réponses
Ga3z
Messages postés
67
Date d'inscription
mercredi 23 juillet 2008
Statut
Membre
Dernière intervention
9 septembre 2008
6
24 juil. 2008 à 17:58
24 juil. 2008 à 17:58
je t'ai fait cette macro
je pars du principe qu'au départ, tu es dans ta 1ère feuille, la cellule contenant les données que tu veux copier étant sélectionnée, que les noms sont dans la première colonne et que la 2ème feuille s'appelle feuil2:
Sub derniere_prolong()
'copiage de la cellule
Selection.Copy
'recherche du nom sur même ligne (1ère cellule de la ligne, donc à gauche)
ActiveCell.End(xlToLeft).Select
' mise du nom en variable
n = Selection.Value
Sheets("feuil2").Select
' selection de la feuil2
Dim x As Range, a As String, l As Integer, c As Integer
Set x = Cells.Find(n, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
a = x.Address(0, 0)
l = x.Row
c = x.Column
End If
' recherche du nom
Cells(l, c).Select
'trouve la dernière colonne non vide de la ligne l
col = Cells(c, l).End(xlToRight).Column
cc = col + 1
Cells(l, cc).Select
'selectionne la dernière cellule vide de la ligne concernée
ActiveSheet.Paste
'colle la valeur dans cette cellule
End Sub
chez moi ça marche, dis-mois si ça donne ce que tu veux
je pars du principe qu'au départ, tu es dans ta 1ère feuille, la cellule contenant les données que tu veux copier étant sélectionnée, que les noms sont dans la première colonne et que la 2ème feuille s'appelle feuil2:
Sub derniere_prolong()
'copiage de la cellule
Selection.Copy
'recherche du nom sur même ligne (1ère cellule de la ligne, donc à gauche)
ActiveCell.End(xlToLeft).Select
' mise du nom en variable
n = Selection.Value
Sheets("feuil2").Select
' selection de la feuil2
Dim x As Range, a As String, l As Integer, c As Integer
Set x = Cells.Find(n, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
a = x.Address(0, 0)
l = x.Row
c = x.Column
End If
' recherche du nom
Cells(l, c).Select
'trouve la dernière colonne non vide de la ligne l
col = Cells(c, l).End(xlToRight).Column
cc = col + 1
Cells(l, cc).Select
'selectionne la dernière cellule vide de la ligne concernée
ActiveSheet.Paste
'colle la valeur dans cette cellule
End Sub
chez moi ça marche, dis-mois si ça donne ce que tu veux
Ga3z
Messages postés
67
Date d'inscription
mercredi 23 juillet 2008
Statut
Membre
Dernière intervention
9 septembre 2008
6
24 juil. 2008 à 18:21
24 juil. 2008 à 18:21
j'oubliai:
pour effacer la cellule que tu viens de copier (je pars du principe que ta première feuille s'appelle "feuil1")
au début du code ajouter ceci:
' mise en variable des n° de ligne et de colonne de la cellule à copier
cli = ActiveCell.Row
ccol = ActiveCell.Column
et en fin de code:
Sheets("Feuil").Select
'selectionne la feuil1
Cells(cli, ccol).Select
'sélectionne la cellule copié
Selection.ClearContents
'efface le contenu
pour effacer la cellule que tu viens de copier (je pars du principe que ta première feuille s'appelle "feuil1")
au début du code ajouter ceci:
' mise en variable des n° de ligne et de colonne de la cellule à copier
cli = ActiveCell.Row
ccol = ActiveCell.Column
et en fin de code:
Sheets("Feuil").Select
'selectionne la feuil1
Cells(cli, ccol).Select
'sélectionne la cellule copié
Selection.ClearContents
'efface le contenu
Ga3z
Messages postés
67
Date d'inscription
mercredi 23 juillet 2008
Statut
Membre
Dernière intervention
9 septembre 2008
6
24 juil. 2008 à 18:25
24 juil. 2008 à 18:25
décidemment !!!
plus simple que le copier coller + effacer: le couper coller !
remplace Selection.Copy par Selection.Cut dans le code d'origine et c'est tout
plus simple que le copier coller + effacer: le couper coller !
remplace Selection.Copy par Selection.Cut dans le code d'origine et c'est tout
Merci pour ta réponse.
J'essaierai ta macro au mieux demain en retournant à mon travail, sinon après mes vacances dans 3 semaines. J'espère que je saurai comprendre car en dehors d'enregistrer une macro, je n'en jamais écris une. Mais bon, il faut un début à tout et je suis plutôt du genre curieuse...
Je te tiens au courant.
J'essaierai ta macro au mieux demain en retournant à mon travail, sinon après mes vacances dans 3 semaines. J'espère que je saurai comprendre car en dehors d'enregistrer une macro, je n'en jamais écris une. Mais bon, il faut un début à tout et je suis plutôt du genre curieuse...
Je te tiens au courant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ga3z
Messages postés
67
Date d'inscription
mercredi 23 juillet 2008
Statut
Membre
Dernière intervention
9 septembre 2008
6
25 juil. 2008 à 15:57
25 juil. 2008 à 15:57
quand tu as copié le code, tu vas à outils - macro - visual basic editor
dans le menu: insertion - module
et tu colles le code dans la page blanche
ensuite tu fermes visual basic editor et tu te retrouves sur ton classeur excel
après, quand tu es sur la cellule à copier, tu appelles la macro derniere_prolong et tu vérifies ce que ça donne
dans le menu: insertion - module
et tu colles le code dans la page blanche
ensuite tu fermes visual basic editor et tu te retrouves sur ton classeur excel
après, quand tu es sur la cellule à copier, tu appelles la macro derniere_prolong et tu vérifies ce que ça donne