Copier cellules non vide d'1 tableau sur 1 autre feuille en colonne

Y compris Power BI, Power Query et toute autre question en lien avec Excel
F
FREDMUSTANG46
Nouveau venu
Nouveau venu
Messages : 1
Inscrit le : 27 février 2019
Version d'Excel : 2016

Message par FREDMUSTANG46 » 27 février 2019, 18:02

Bonjour à tous,
je suis nouveau sur le forum, et un peu débutant en programmation VBA sur excel
voici ma demande :

J'ai un tableau en feuille 2 de A2:H21
dans ce tableau il y a des cellules vides et non vide
je souhaite récupérer sur 1 colonne dans la feuille 1 les cellules non vide de la feuille 2
en respectant l'ordre colonne puis ligne
je souhaite que cette colonne de la feuille 1 récupérant les données commence sur la cellule A3 précisément

par avance merci de votre aide

fred
m
m3ellem1
Membre fidèle
Membre fidèle
Messages : 215
Appréciations reçues : 14
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 28 février 2019, 01:12

Slt fred,

à tester
Sub CopierColonnes()
Application.ScreenUpdating = False
Sheets(1).UsedRange.Value = Sheets(1).UsedRange.Value
Dim nCOL As Long
  Sheets(2).Activate
     For nCOL = 1 To 8
         Sheets(2).Range(Cells(2, nCOL), Cells(21, nCOL).End(xlUp)).Copy
         Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(2, 0).PasteSpecial
     Next

On Error Resume Next
  Sheets(1).Activate
  Sheets(1).Range("A3", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0

  Sheets(1).Activate
  Sheets(1).UsedRange.Select
  Selection.Cut
  Range("A3").Select
  ActiveSheet.Paste
  Range("A3").Select
  Application.ScreenUpdating = True
End Sub
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'239
Appréciations reçues : 399
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel 32 bits

Message par Jean-Eric » 28 février 2019, 09:01

Bonjour,
Une autre proposition.
Cdlt.
FredMustang46.xlsm
(19.61 Kio) Pas encore téléchargé
Public Sub Copy_dada()
Dim Tbl As Variant, Arr() As Variant
Dim I As Long, J As Long, k As Long
    Tbl = Feuil2.Range("A2:H21")
    For I = 1 To UBound(Tbl)
        For J = 1 To UBound(Tbl, 2)
            If Tbl(I, J) <> "" Then
                ReDim Preserve Arr(k + 1)
                Arr(k) = Tbl(I, J)
                k = k + 1
            End If
        Next J
    Next I
    With Feuil1
        With .Cells(3, 1)
            .CurrentRegion.ClearContents
            If k > 0 Then .Resize(k).Value = Application.Transpose(Arr)
        End With
        .Activate
    End With
End Sub
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
j
jmd
Passionné d'Excel
Passionné d'Excel
Messages : 9'497
Appréciations reçues : 161
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 28 février 2019, 09:53

bonjour à tous

sans aucune ligne de code, avec Power Query
merci au passage à jean-Eric qui m'a appris à dépivoter des données

amitiés et bonne journée
Classeur1.xlsx
(18.51 Kio) Téléchargé 1 fois
Avant de penser VBA, voir les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données". Power BI Desktop gratuit :)
Apprendre les fonctionnalités "récentes".
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message