Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copie_colle_valeurvide_ou_non

  • Initiateur de la discussion Initiateur de la discussion stpab
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

stpab

XLDnaute Nouveau
Bonjour,

Je souhaite, que en cliquant sur un bouton cela copie la valeur de la case(E28), puis la colle dans une autre case(M34) si elle est vide, si elle n'est pas vide je veut que la valeur de la case(E28) soit coller dans une case inférieur(M35)

Voila j’espère que je suis assez claire,

J'ai essayer ceci mais il doit manquer plusieurs choses car cela ne marche pas

Sub testCopierCollerValeur()
'
' testCopierCollerValeur Macro
'

Dim i As Integer
Dim N As Integer


For i = 34 To N

Range("E28").Copy

If Range("M34").Select = "=NON(ESTVIDE(M34))" Then
Range(Cells(i, 12)).Paste
Else
Range(Cells(i + 1, 12)).Paste
End If
Next i


End Sub




Merci toute aide sera la bienvenu, je galère vraiment
 
Re : Copie_colle_valeurvide_ou_non

Bonjour stab,
si c'est un copier coller simple et non un couper coller...
Code:
if range("m34")="" then
range ("m34").value=range("e28").value
else
range("m35").value=range("e28").value
end if
 
Re : Copie_colle_valeurvide_ou_non

Bonjour,

voici une macro qui devrait répondre à ton besoin
Code:
Sub Macro1()
    Range("E28").Select
    Selection.Copy
    If Range("M34") <> "" Then
        Range("M65336").End(xlUp).Offset(1, 0).Select
    Else: Range("M34").Select
    End If
    ActiveSheet.Paste
End Sub


Maintenant, pourquoi la tienne ne fonctionne pas:
1) N n'est pas définie: donc la macro ne rentre jamais dans ta boucle for
2) la condition if est mal écrite:
ce que tu souhaites faire, c'est voir si la cellule est vide ou pas:
ce que tu écris c'est un truc du genre: si la cellule M34 contient la formule "non(estvide(m34))
en plus.. tu sélectionnes en meme temps que tu testes..
donc:
If Range("M34").Select = "=NON(ESTVIDE(M34))" Then
serait à remplacer par
if Range("M34")<>""

3) Range(cells(i+1,12)): il ne connait pas car la syntaxe c'est Range(Cell1,Cell2)
toi tu ne définis que Cell 1 (un petit tour vers l'aide VBA devrait t'éclairer)

4) en admettant que la syntaxe soit bonne: ta boucle est incorrecte:
Si la cellule M34 est vide alors
copie E28 en M34
sinon copie E28 en M35: tu copies avant meme de regarder si celle ci est aussi vide ou pas

voila.. ;-)
 
Re : Copie_colle_valeurvide_ou_non

Merci pour votre aide, un petit mix de vos deux réponse et cela fonctionne.


Range("E28").Select
Selection.Copy
If Range("M34") <> "" Then
Range("M65336").End(xlUp).Offset(1, 0).Value = Range("e28").Value
Else: Range("M34").Value = Range("e28").Value
End If
ActiveSheet.Paste


Très cordialement,
 
Dernière édition:
Re : Copie_colle_valeurvide_ou_non

Re
pas de souci
d'ailleurs tu as raison, Stpab a déjà "presque" corrigé tout seul

ceci suffit

Code:
If Range("M34") <> "" Then
Range("M65336").End(xlUp).Offset(1, 0).Value = Range("e28").Value
Else: Range("M34").Value = Range("e28").Value
End If
 
Re : Copie_colle_valeurvide_ou_non

Merci de votre aide.

Et juste pour info personnel, si je souhaite maintenant coller le contenu non plus dans la colonne du M34 mais dans la colonne du A1 de la feuille 2 que dois-je modifier?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
672
Réponses
2
Affichages
365
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
973
Réponses
4
Affichages
526
Réponses
7
Affichages
274
Réponses
8
Affichages
633
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…