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 !
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
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
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
Désolé du ton, je venais de voir le double post et que ça répondait des 2 cotés...
Je pense même que le range.copy n'est pas nécessaire puisqu'on met un =... et qu'on ne veut que la valeur...
Non?
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