Copier/coller dans cellule si vide

  • Auteur de la discussion Lululucie
  • Date de début

Lululucie

Nouveau membre
Bonjour,
J'ai crée une macro dans excel qui me permet de copier/coller une valeur de cellule, dans une cellule d'une autre feuille.
Mais,
J'aimerai pouvoir ajouté une condition, si la cellule destinataire est déjà remplie, coller la valeur dans la cellule en dessous.
Quelqu’un aurait une solution?
Merci.
 

SergioVE

Tout à faire car rien n'est fait.
La fonction estvide() ne te convient pas ?
 

drul

Obscur pro du hardware
Staff
Salut, tu peux mettre ton code ici ?
La difficulté est de déterminer la dernière cellule vide ...
Sans savoir exactement ce que tu cherches à faire c'est pas évident ...

De base je te recommande d'utiliser la fonction "Range.end" elle permet de trouver les limites d'une plage de données.
En général, on part de la dernière ligne et on remonte
Code:
Range(Rows.count,"taColonne").end(xlup)
te donnera la dernière cellule utilisée dans une colonne
Code:
Range(Rows.count,"taColonne").end(xlup).Offset(1,0)
te donnera la cellule vide juste en dessous.
 

magellan

Modérâleur
Staff
+1. Il serait utile de voir d'où vers où tu veux coller les données, et si tu as des règles plus précises à y appliquer ou pas. Il y a autant de manières de faire que de codeurs... et moi comme je suis rouillé en vb j'ai tendance à faire des boucles (foreach / for sur une plage) qu'à prendre des méthodes toutes prêtes autrement plus efficaces et simples à mettre en oeuvre.
 

Lululucie

Nouveau membre
Merci de vos réponses!
Voici mon code actuel:
Sub REPORTER()

range("G37").Select
Selection.Copy
Sheets("REPORT").Select
range("B2").Select
ActiveSheet.Paste
End Sub

Celui-ci ne fait que copier, j'aimerai que si la cellule "b2" destinatrice est pleine, la valeur soit inscrit en dessus, en "b3"!
Merci!
 
Dernière édition:

drul

Obscur pro du hardware
Staff
En C2 ou en B3 ?
Et si B3 est déjà occupé ? On fait quoi ?

P.S. quelques remarques sur ton code
range.select
Selection.copy
S'écrit en fait
range.copy ...
Lorsque l'on joue avec plusieurs feuille, toujours, je dis bien TOUJOURS, spécifier sur quel feuille on travaille !
La fonction copy en vba est privilégier sous la forme source.copy destination Cela évite de passer par le presse papier et par conséquant détruire des infos dont l'utilisateur avait potentiellement besoin.

Un essais un peu à l'aveugle:
Code:
Sub REPORTER()

sheets("LeNomDeTaFeuilleSource").range("G37").Copy Sheets("REPORT").cells(rows.count,"B").end(xlup).offset(1,0)

End Sub

Devrait faire le boulot ...
 
Dernière édition:

Lululucie

Nouveau membre
Merci beaucoup!!!!
Je voulais dire en "B3", mes excuses.
Je vais essayer, mais pour dire vrai, cette macro s'est faite "seule" par l'enregistrement de mes actions sur ma page!
 

Lululucie

Nouveau membre
J'ai essayé votre code et premièrement il est beaucoup plus lisible, et en plus il fonctionne super bien!! merci beaucoup!
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 065
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut