Copier colonne d'un onglet sur l'autre ms ds un ordre différent

Résolu/Fermé
bleue35 Messages postés 3 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 14 mars 2014 - 11 mars 2014 à 18:03
bleue35 Messages postés 3 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 14 mars 2014 - 14 mars 2014 à 10:06
Bonjour les gens,

Ici une authentique bleue qui aurait besoin de votre aide.
En pompant une programmation de macro j'ai partiellement réussi à faire ce que je souhaite.
Soit copier les lignes vides d'un onglet « Relevé » sur un autre onglet « Synthèse » :

Sub Copier_lignes_non_vides()
Dim wsReleve As Worksheet, rgReleve As Range
Dim wsSynthese As Worksheet, rgSynthese As Range
Dim c As Range, i As Long
Application.ScreenUpdating = False
Set wsReleve = ThisWorkbook.Sheets("Releve")
Set rgReleve = wsReleve.Range("D7:H280")
Set wsSynthese = ThisWorkbook.Sheets("Synthese")
Set rgSynthese = wsSynthese.Range("A2")

For i = rgReleve.Row To rgReleve.Row + rgReleve.Rows.Count - 1
Set c = wsReleve.Range("D" & i & ":H" & i)
If Application.WorksheetFunction.Count(c) > 0 Then
c.Copy
rgSynthese.PasteSpecial xlPasteValues
Set rgSynthese = rgSynthese.Offset(1)
End If
Next i

wsSynthese.Range("D" & rgSynthese.Row & ":H" & Rows.Count).ClearContents
Application.ScreenUpdating = True

End Sub

J'ai donc les données nécessaires sur l'onglet « Synthèse » mais pas disposées dans le bon ordre.
C'est-à-dire que j'ai des données dans 5 colonnes qui s'affichent dans le même ordre que dans l'onglet « Relevé » or je voudrais que les informations disponibles sur la ligne se répartissent dans un autre ordre.
Soit que les données disponibles en colonne D de l'onglet « Relevé » se retrouvent en colonne E dans l'onglet « Synthèse » par exemple ; la F en A ; la E en B ; la G en D et la H en C. Sachant que les intitulés de colonne sont les mêmes.

Je vous remercie d'avance pour votre aide,

Bonne soirée

Bleue
A voir également:

3 réponses

Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
11 mars 2014 à 22:59
Bonjour,
Vous dites :
Soit copier les lignes vides d'un onglet « Relevé » sur un autre onglet « Synthèse » :

Alors la suite est incompréhensible par rapport à des lignes vides... !

0
bleue35 Messages postés 3 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 14 mars 2014
12 mars 2014 à 09:35
Bonjour,

oui désolée il manque la virgule...
J'ai réussi à avoir ce que je souhaite, soit....

Merci de votre aide
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
12 mars 2014 à 16:48
Bonjour Bleue,

Essaies ce code avec CountA au lieu de Count :
Option Private Module
Option Explicit
Public Sub Copier_lignes_non_vides()
Dim r As Range, i As Long

Application.ScreenUpdating = False
Set r = ThisWorkbook.Sheets("Synthese").Range("A2")
With ThisWorkbook.Sheets("Releve").Range("D7:H280")
  For i = 1 To .Rows.Count
    If Application.WorksheetFunction.CountA(.Rows(i)) > 0 Then
      r.Resize(1, .Columns.Count).Value = .Rows(i).Value
      Set r = r.Offset(1)
    End If
  Next i
  r.Resize(Rows.Count - .Row + 1).ClearContents
End With
Application.ScreenUpdating = True

End Sub


0
bleue35 Messages postés 3 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 14 mars 2014
14 mars 2014 à 10:06
re Merci Patrice :-)
0