Copier/coller dans cellule si vide

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

Lululucie

Nouveau membre
#1
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

Grand Maître
#2
La fonction estvide() ne te convient pas ?
 

drul

Obscur pro du hardware
Staff
#4
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
#5
+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
#6
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
#7
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
#8
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!
 

drul

Obscur pro du hardware
Staff
#9
Je m'en doutais ;)
 

Lululucie

Nouveau membre
#10
J'ai essayé votre code et premièrement il est beaucoup plus lisible, et en plus il fonctionne super bien!! merci beaucoup!
 

drul

Obscur pro du hardware
Staff
#11
:merci:
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Staff en ligne
  • jeanmay022
    Modo hardware OC
Membres en ligne
  • voodoospirit
  • holivman
  • tomtom95
  • labul671
  • jeanmay022
Derniers messages publiés
Statistiques globales
Discussions
844 496
Messages
7 563 447
Membres
1 583 026
Dernier membre
holivman
Partager cette page
Haut