Problème :copier coller à la dernière cellule vide

mordious

XLDnaute Occasionnel
bonjour

les colonnes C$3:C12 et F3:F12 contiennes des formules
Code:
=si(B1=1;"ok";"")
Je souhaite que la Macro1 copie les données de la colonne C$3:C$12 et la colonne F$3:F1$2
colle ces données à la dernière cellule vide de la colonne M$3

le problème et que la macro colle aussi les cellules vides

la seule solution que j'ai trouvé et de passer par un filtre avancé (dans la Macro) puis copier coller les résultat (Macro2)

je souhaite une solution plus simple

ci-joint fichier exemple

cordialement
 

Pièces jointes

  • Classeur1.xlsm
    24.3 KB · Affichages: 44
  • Classeur1.xlsm
    24.3 KB · Affichages: 54

mutzik

XLDnaute Barbatruc
Re : Problème :copier coller à la dernière cellule vide

bonsoir

à mettre en C1
=NB.SI(C3:C12;"ok") te donne le nombre de fois que tu as ok dans cette plage

range("C3:C" & 3 + range("C1")).copy te sélectionnera que les cellules contenant 'ok'
 

Staple1600

XLDnaute Barbatruc
Re : Problème :copier coller à la dernière cellule vide

Bonsoir à tous________________EDITION:Bonsoir mutzik ;)

En modifiant tes formules ainsi
Code:
=Si(B3=1,"ok";0)
et
Code:
=SI(E3=2;"NUL";0)
avec le code VBA ci-dessous
Code:
Sub a()
Range("C3:C12").SpecialCells(xlCellTypeFormulas, 2).Copy
Cells(Rows.Count, "m").End(xlUp)(2).PasteSpecial xlPasteValues
Range("F3:F12").SpecialCells(xlCellTypeFormulas, 2).Copy
Cells(Rows.Count, "m").End(xlUp)(2).PasteSpecial xlPasteValues
End Sub
test OK sur mon PC
 
Dernière édition:

mordious

XLDnaute Occasionnel
Re : Problème :copier coller à la dernière cellule vide

bonsoir à tous

les formules citées dans mon 1er post sont un exemple

les formules dans le classeur final sont plutôt du style :
Code:
=SIERREUR(SI(J187="";"";INDEX(I$5:I$64;PETITE.VALEUR(SI(Q$5:Q$64=J187;LIGNE(INDIRECT("1:"&LIGNES(Q$5:Q$64))));NB.SI(J$187:J187;J187))));"")

les données sont différentes = "rouge " , "lundi" , "Jean" ...ect
de plus les donnés recueillies ce trouves dans un autre classeur (non modifiable)

je souhaite à l'aide d'une macro (dans le classeur X) copier les données issues des formules contenues (dans le classeur Y)
coller uniquement les cellule non vide dans :
classeur X , dernier cellule vide de la colonne M$3
que les données s incères à la suite, sans cellules vides, à chaque lancement de la macro

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Problème :copier coller à la dernière cellule vide

Re

mordious
Il serait sans doute utile de joindre un fichier exemple plus proche de la réalité, non ?
Car ma proposition dans le message #3 faisait ce tu demandais en se basant sur le fichier du message #1.
 

mordious

XLDnaute Occasionnel
Re : Problème :copier coller à la dernière cellule vide

bonsoir Staple 1600

ci-joint fichier exemple dans Feuil3

mon exemple comporte 1 seul "tableau résultat "
mais dans le fichier final il y a 3 ou 4 tableaux résultats, toujours à coller dans le tableau "donnés recueillies" les unes après les autres sans cellules vides

cordialement
 

Pièces jointes

  • Classeur1.xlsm
    31.9 KB · Affichages: 51
  • Classeur1.xlsm
    31.9 KB · Affichages: 43

mordious

XLDnaute Occasionnel
Re : Problème :copier coller à la dernière cellule vide

Bonsoir à tous

Merci à vous pour votre patience, car il est vrai que ma demande n'était pas clair

enfin en cherchant (sur google) j'ais trouvé la solution
en modifiant le code ci-dessous

Code:
Dim Cellule As Range
    For Each Cellule In ActiveSheet.Range("B1:B10")
        If Cellule Is Nothing Or Cellule.Value = "" Then
            Cellule.Delete xlUp
        End If
    Next Cellule

remplacé par:
Code:
Dim Cellule As Range
    For Each Cellule In ActiveSheet.Range("M2:M50")
    
        If Cellule Is Nothing Or Cellule.Value = "" Then
            Cellule.Clear
        End If
    Next Cellule

ce qui donne
Code:
Sub CopierColler()

'éfface les céllules vide
    Dim Cellule As Range
    For Each Cellule In ActiveSheet.Range("M2:M50")
        If Cellule Is Nothing Or Cellule.Value = "" Then
            Cellule.Clear
        End If
    Next Cellule
    
  'copier coller dernier cellule vide
 Range("C3:C12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("M" & Range("M65535").End(xlUp).Row + 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
   'éfface les céllules vide
    For Each Cellule In ActiveSheet.Range("M2:M50")
    If Cellule Is Nothing Or Cellule.Value = "" Then
            Cellule.Clear
        End If
    Next Cellule
    
    ''copier coller dernier cellule vide
 Range("F3:F12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("M" & Range("M65535").End(xlUp).Row + 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False        
    
End Sub

Ci-joint fichier

Cordialement
 

Pièces jointes

  • Classeur1A.xlsm
    18.9 KB · Affichages: 40
  • Classeur1A.xlsm
    18.9 KB · Affichages: 42

Discussions similaires

Réponses
11
Affichages
626

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024