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

Coller si vide, sinon coller dessous

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 !

salsitawapa

XLDnaute Occasionnel
Bonjour à tous, je butte sur un problème, mais je pense que ça vient de ma version excel...
Je n'arrive pas à faire un truc simple en macro.
Je suis sur la feuil2 je copie les cellules "I6:K6"
Je vais sur la feuil3 je les colles sur la ligne "A2:C2"
Ça j'y arrive 😉

La ou ça se complique pour moi est que si sur la feuil3 la ligne est prise, il faut qu'il me le colle au dessous, et ainsi de suite. Pour ce faire, j'utilise Row+1 mais ça ne fonctionne pas...
Pouvez vous m'aider SVP ?
Code:
Sub Test()

Range("I6:K6").Select
Selection.Copy
Sheets("Feuil3").Select
Range("A2:C2").End(xlUp)(2).Row+1
ActiveSheet.Paste
End Sub
J'ai essayé en enlevant le "+1" toujours une erreur... Merci de votre aide
 
Re : Coller si vide, sinon coller dessous

Pour le coup j'ai réussi à trouver...
Code:
Sub Macro5()

Range("I6:K6").Select
Selection.Copy
Sheets("Feuil3").Select
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Feuil2").Select
Application.CutCopyMode = False
Range("A1").Select
End Sub

Par contre, si je clic une seconde fois sur le même bouton, il me rajoute une ligne, ni à t'il pas moyen d'additionner le résultat et n'avoir qu'une seule ligne ?
Merci
 
Dernière édition:
Re : Coller si vide, sinon coller dessous

Bonsoir à tous

Si j'ai bien compris la question, essaie cette autre façon de faire
VB:
Sub Macro5BIS()
'Je suis sur la feuil2 je copie les cellules "I6:K6"
'Je vais sur la feuil3 je les colles sur la ligne "A2:C2"
Dim t
t = Sheets(2).Range("I6:K6").Value
Sheets(3).Cells(Rows.Count, 1).End(3)(2).Resize(, 3) = t
End Sub
ou sa version one-liner 😉
Code:
Sub Macro5TER()
Sheets(3).Cells(Rows.Count, 1).End(3)(2).Resize(, 3).Value = Sheets(2).Range("I6:K6").Value
End Sub
 
Re : Coller si vide, sinon coller dessous

Oui ça prend encore moins de place, je vais corriger mes macros... Par contre, comment faire pour éviter les doublons et donc ajouter 1 à la place de refaire une ligne ?
Grosso modo, j'ai sur la feuil3 en A1 le nombre et en B1 le nom. Si je clique 2 fois (ou plus) sur le même bouton, je voudrais qu'il me comptabilise le nombre de fois que j'ai cliqué dessus sur la colonne A...
Merci
 
Re : Coller si vide, sinon coller dessous

Re

Toujours si j'ai bien compris ce que la macro doit faire
Code:
Sub a()
Dim p As Range, t
t = Sheets(2).Range("I6:K6")
Set p = Sheets(3).Cells(Rows.Count, 1).End(3)
If Len(p) = 0 Then
p.Resize(, 3).Value = Sheets(2).Range("I6:K6").Value
Else
p.Value = p.Value + t(1, 1)
p.Offset(, 1) = p.Offset(, 1) + t(1, 2)
p.Offset(, 2) = p.Offset(, 2) + t(1, 3)
End If
End Sub

A la réflexion, cette version plus courte fait la même chose que la première macro
Code:
Sub b()
Dim p As Range, t: t = Sheets(2).Range("I6:K6")
Set p = Sheets(3).Cells(Rows.Count, 1).End(3): p.Value = p.Value + t(1, 1)
p.Offset(, 1) = p.Offset(, 1) + t(1, 2): p.Offset(, 2) = p.Offset(, 2) + t(1, 3)
End Sub
 
Dernière édition:
Re : Coller si vide, sinon coller dessous

J'ai essayé le code, il met 2 erreurs.
La première, s'il n'y a pas de ligne, il me met en débogage... La seconde, s'il y a déjà quelque chose d'écrit, il le met dans la même case (pas trop gênant si c'est le même nom il sera en double dans la même case, mais si c'est un autre il le fait quand même)...
Sinon, il fait bien le compte.
Merci
Le plus simple est d'avoir un fichier sous les yeux je pense... Je l'ai posté ici
 
Dernière édition:
Re : Coller si vide, sinon coller dessous

Re

Chez moi les deux codes fonctionnent 😉
Et si ils ne fonctionnaient pas, je ne les aurai pas posté... 😉

Tu as toute la nuit pour les faire fonctionner car là présentement je vais dodoter 😉

(Un indice: j'ai testé avec des données numériques en I6:K6)
Donc voir du côté d'un If Isempty ... Then ..... End If
 
- 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
3
Affichages
267
Réponses
10
Affichages
661
Réponses
18
Affichages
443
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…