Copier valeur dans la première cellule vide dune ligne
Résolu/Fermé
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
-
Modifié par kgigant le 18/04/2013 à 15:22
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 - 22 avril 2013 à 19:14
kgigant Messages postés 202 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 8 janvier 2014 - 22 avril 2013 à 19:14
A voir également:
- Copier valeur dans la première cellule vide dune ligne
- Aller à la ligne dans une cellule excel - Guide
- Supprimer page word vide - Guide
- Partager photos en ligne - Guide
- Excel cellule couleur si condition texte - Guide
- Comment copier une vidéo youtube - Guide
16 réponses
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
19 avril 2013 à 08:11
19 avril 2013 à 08:11
mon énoncé n'est pas clair ?
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 07:59
22 avril 2013 à 07:59
SVP
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
22 avril 2013 à 08:26
22 avril 2013 à 08:26
Salut,
Effectivement pas très clair, mais pour coller à la suite sur la feuille nommée
Feuil1 en prenant référence sur la colonne A
Sheets("Feuil1").Activate 'sélectionne la feuille du transfert
Range("A65000").End(xlUp).Offset(1).Select 'recherche la première cellule vide
ActiveSheet.Paste 'copie les données
Effectivement pas très clair, mais pour coller à la suite sur la feuille nommée
Feuil1 en prenant référence sur la colonne A
Sheets("Feuil1").Activate 'sélectionne la feuille du transfert
Range("A65000").End(xlUp).Offset(1).Select 'recherche la première cellule vide
ActiveSheet.Paste 'copie les données
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 08:46
22 avril 2013 à 08:46
Bonjour et merci de ton aide
je vais essayer d'être plus clair,
Ce que je recherche c'est copier la cellule D8 de la feuil2 en cellule B14 de la feuil1.
Puis à chaque fois que j'execute la macro j'aimerai quelle me colle la valeur de D8 feuil2 en C14, puis D14, puis E14... de la feuil1.
la macro doit copier la valeur de D8 feuil2 et la coller en feuil1 ligne 14 dans la première cellule non vide.
désolé c'est jamais évident d'expliquer son problème.
Merci
je vais essayer d'être plus clair,
Ce que je recherche c'est copier la cellule D8 de la feuil2 en cellule B14 de la feuil1.
Puis à chaque fois que j'execute la macro j'aimerai quelle me colle la valeur de D8 feuil2 en C14, puis D14, puis E14... de la feuil1.
la macro doit copier la valeur de D8 feuil2 et la coller en feuil1 ligne 14 dans la première cellule non vide.
désolé c'est jamais évident d'expliquer son problème.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
Modifié par Mike-31 le 22/04/2013 à 10:01
Modifié par Mike-31 le 22/04/2013 à 10:01
Re,
Si tu utilises un bouton ActiveX, on peut rechercher depuis la colonne DZ ligne 14 la première cellule non vide et on colle la valeur de la Feuil2
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2) = Sheets("Feuil2").Range("D8")
End Sub
Si c'est ce que tu cherches on peut simplifier la ligne, tu nommes la cellule cible D8 Feuil2 par exemple nommée titi
Sheets("Feuil1").[DZ14].End(xlToLeft)(1, 2) = [titi]
mais si tu nommes également la cellule de départ du balayage Feuil1 ligne 14 dans l'exemple DZ14 mais pourrait être la cellule de la dernière colonne XFD14 et nommée toto
la ligne de code se résume à
[toto].End(xlToLeft)(1, 2) = [titi]
il faudrait peut être effacer la cellule Sheets("Feuil2").Range("D8") après l'exécution de la macro pour éviter le collage en doublon
en ajoutant cette ligne
Sheets("Feuil2").Range("D8") .clearcontents
ou si cellule nommée
[titi].clearcontents
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Si tu utilises un bouton ActiveX, on peut rechercher depuis la colonne DZ ligne 14 la première cellule non vide et on colle la valeur de la Feuil2
Private Sub CommandButton1_Click()
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2) = Sheets("Feuil2").Range("D8")
End Sub
Si c'est ce que tu cherches on peut simplifier la ligne, tu nommes la cellule cible D8 Feuil2 par exemple nommée titi
Sheets("Feuil1").[DZ14].End(xlToLeft)(1, 2) = [titi]
mais si tu nommes également la cellule de départ du balayage Feuil1 ligne 14 dans l'exemple DZ14 mais pourrait être la cellule de la dernière colonne XFD14 et nommée toto
la ligne de code se résume à
[toto].End(xlToLeft)(1, 2) = [titi]
il faudrait peut être effacer la cellule Sheets("Feuil2").Range("D8") après l'exécution de la macro pour éviter le collage en doublon
en ajoutant cette ligne
Sheets("Feuil2").Range("D8") .clearcontents
ou si cellule nommée
[titi].clearcontents
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 10:18
22 avril 2013 à 10:18
Re,
J'ai essayé ton code je n'arrive pas à le faire correctement fonctionner mais le peu que j'ai réussi me prouve que c'est la solution que je cherche.
Je n'arrive pas à faire le lien entre copier la valeur et aller la coller
J'ai essayé ton code je n'arrive pas à le faire correctement fonctionner mais le peu que j'ai réussi me prouve que c'est la solution que je cherche.
Je n'arrive pas à faire le lien entre copier la valeur et aller la coller
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
22 avril 2013 à 10:23
22 avril 2013 à 10:23
Re,
regarde le fichier joint
https://www.cjoint.com/c/CDwkxthTRJK
regarde le fichier joint
https://www.cjoint.com/c/CDwkxthTRJK
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 10:48
22 avril 2013 à 10:48
Je regarderai ce soir je peux pas l'ouvrir pour visualiser le code ici.
Je te retiens au courant, merci d'avance
Je te retiens au courant, merci d'avance
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
22 avril 2013 à 10:52
22 avril 2013 à 10:52
Re,
Pas de problème je serais la mais assez tard dans la soirée
Pas de problème je serais la mais assez tard dans la soirée
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 11:54
22 avril 2013 à 11:54
Je vais prendre un peu d'avance en attendant ce soir, dans la formule :
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2) = Sheets("Feuil2").Range("D8")
qu'est ce qu'il faut rajouter pour garder la mise en forme de la cellule source ?
J'ai essayé de le faire avec l'enregistreur de macro puis de rajouter le code à la suite mais ca ne fonctionne pas.
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2) = Sheets("Feuil2").Range("D8")
qu'est ce qu'il faut rajouter pour garder la mise en forme de la cellule source ?
J'ai essayé de le faire avec l'enregistreur de macro puis de rajouter le code à la suite mais ca ne fonctionne pas.
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
22 avril 2013 à 12:36
22 avril 2013 à 12:36
Re,
dans ton module Visual Basic colle ce code et associe le à un bouton
sub test ()
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2) = Sheets("Feuil2").Range("D8")
end if
dans ton module Visual Basic colle ce code et associe le à un bouton
sub test ()
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2) = Sheets("Feuil2").Range("D8")
end if
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 14:14
22 avril 2013 à 14:14
ok ca fonctionne mais admettons que ma case en D8 a une mise en forme spécifique, j'aimerais garder cette mise en forme lorsque je la colle en Feuil1, je dois rajouter un bout de code nn ? je n'arrive pas à le faire avec l'enregistreur de macro.
Merci encore
Merci encore
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
22 avril 2013 à 14:52
22 avril 2013 à 14:52
Re,
Voila le code
Sheets("Feuil2").Range("D8").Copy
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2).Select
ActiveSheet.Paste
Voila le code
Sheets("Feuil2").Range("D8").Copy
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2).Select
ActiveSheet.Paste
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 14:58
22 avril 2013 à 14:58
ok c'est bien ce qui me semblait on doit repasser avec le code copy, mais je retombe sur le même problème que j'avais, j'ai une erreur de macro à la deuxième ligne alors que je ne vois pas d'erreur.
Tu as fais un essai toi ? ca fonctionne ?
Tu as fais un essai toi ? ca fonctionne ?
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 15:03
22 avril 2013 à 15:03
J'ai trouvé un moyen pour que ca fonctionne mais ça rajoute des lignes pour rien je pense :
Sheets("Feuil2").Range("D8").Copy
Sheets("Feuil1").Select
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2).Select
ActiveSheet.Paste
Sheets("Feuil2").Range("D8").Copy
Sheets("Feuil1").Select
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2).Select
ActiveSheet.Paste
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
Modifié par Mike-31 le 22/04/2013 à 15:17
Modifié par Mike-31 le 22/04/2013 à 15:17
Re,
Contrôle bien le nom de ton onglet, pas d'intervalle, il doit y avoir un problème à ce niveau différence de nom
complète ton code comme ceci
Sheets("Feuil2").Range("D8").Copy
Sheets("Feuil1").Activate
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2).Select
ActiveSheet.Paste
Application.CutCopyMode = False
mais si la commande se fait depuis la Feuil1 tu n'as pas besoin de cette ligne
Sheets("Feuil1").Activate
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Contrôle bien le nom de ton onglet, pas d'intervalle, il doit y avoir un problème à ce niveau différence de nom
complète ton code comme ceci
Sheets("Feuil2").Range("D8").Copy
Sheets("Feuil1").Activate
Sheets("Feuil1").Range("DZ14").End(xlToLeft)(1, 2).Select
ActiveSheet.Paste
Application.CutCopyMode = False
mais si la commande se fait depuis la Feuil1 tu n'as pas besoin de cette ligne
Sheets("Feuil1").Activate
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 17:26
22 avril 2013 à 17:26
Suite à toutes tes réponse j'ai réussi à faire ce que je souhaitai, le dernier point consiste si tu à le temps à allèger la macro, je pense que quelques lignes peuvent remplacer mes 100 lignes (j'ai recopier 26 fois le meme code....)
je te mets le lien de mon fichier (modifié pour des raison de confidentialité)
https://www.cjoint.com/?3DwrAdgr9hn
Merci encore pour ton aide et ta disponibilité
je te mets le lien de mon fichier (modifié pour des raison de confidentialité)
https://www.cjoint.com/?3DwrAdgr9hn
Merci encore pour ton aide et ta disponibilité
Mike-31
Messages postés
18357
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 février 2025
5 113
22 avril 2013 à 17:52
22 avril 2013 à 17:52
Re,
ce qui pose problème sont les formats sinon chaque module de 4 lignes pourrait se limiter à 1 ligne,
on pourrait utiliser la syntaxe With ou faire une boucle ce qui limiterait chaque module à 2 lignes, je regarde mais tard dans la soirée ce qui peut être fait
ce qui pose problème sont les formats sinon chaque module de 4 lignes pourrait se limiter à 1 ligne,
on pourrait utiliser la syntaxe With ou faire une boucle ce qui limiterait chaque module à 2 lignes, je regarde mais tard dans la soirée ce qui peut être fait
kgigant
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
9
22 avril 2013 à 19:14
22 avril 2013 à 19:14
ok merci beaucoup