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

Copie de données d'un onglet vers un autre

smaelVB

XLDnaute Nouveau
bonjour à tous,

novice en VBA, je m'arrache les cheveux depuis ce weeke end pour créer une macro qui récupère certaines données dans un onglet (PilotageCouleur) vers un autre onglet (Smael).

J'ai un tableau ayant un onglet Pilotage qui contient des cellules vides et des cellules avec des dates (exemple : DC=DEC09).

J'arrive dans un premier temps à identifier les cellules vides et les cellules pleines en changeant le fond de couleur de la cellule.

Cependant, la deuxième étape serait de copier pour toutes les cellules non vides, l'information se trouvant dans les colonnes B et C, ainsi que les informations se trouvant dans les lignes 1 et 2, puis il faudrait les coller dans une autre feuille (Smael) dans 5 colonnes séparés (Date comptable,Jour,Date,Frequence,Type). J'espère être assez clair...

J'ai mis un exemple dans l'onglet Smael du fichier joint.

Merci beaucoup pour votre aide

Merci pour votre aide !
 

Pièces jointes

  • Engagement 3.zip
    40.3 KB · Affichages: 48
  • Engagement 3.zip
    40.3 KB · Affichages: 50
  • Engagement 3.zip
    40.3 KB · Affichages: 51

smaelVB

XLDnaute Nouveau
Re : Copie de données d'un onglet vers un autre

Bonjour Kjin,

merci beaucoup pour ton aide.

cependant je ne sais pas pourquoi pour la colonne date de l'onglet Smael, les dates ayant un jour entre 01 et 12 sont inversés (le jour est inversé avec le mois). Après à partir du 13eme jour, on a les bonnes dates.

Par exemple au lieu de 04/01/2010 (4 janvier 2010) on a 01/04/2010 (4 février 2010). Or la bonne date est le 4 janvier 2010.

merci beaucoup pour ton retour!!
 

néné06

XLDnaute Accro
Re : Copie de données d'un onglet vers un autre

bonsoir smael VB, Kjin

avec ce code chez moi cela fonctionne

Sub fonction_analyse()
Dim ad As Date
t = Sheets("PilotageCouleur").Range("B1367").Value
k = 2
With Sheets("Smael")
For i = 3 To UBound(t, 1)
For j = 3 To UBound(t, 2)
If t(i, j) <> "" Then
.Cells(k, 1) = t(i, j)
.Cells(k, 2) = t(i, 1)
ad = Format(t(i, 2), "dd-mm-yyyy")
.Cells(k, 3) = ad
.Cells(k, 4) = t(1, j)
.Cells(k, 5) = t(2, j)
k = k + 1
End If
Next
Next
End With

End Sub
@+
 

kjin

XLDnaute Barbatruc
Re : Copie de données d'un onglet vers un autre

Bonsoir, salut nene ,
Effectivement, je navet point vu que les datesétaient au format texte
Code:
'...
.Cells(k, 3) = [COLOR="Blue"]CDate[/COLOR](t(i, 2))
'...
A+
kjin
 

smaelVB

XLDnaute Nouveau
Re : Copie de données d'un onglet vers un autre

Bonjour Kjin, Bonjour Néné,

Merci beaucoup pour votre aide!!!

Les 2 solutions marchent parfaitement.

A très bientôt sur le forum ;-))

et bon appétit (dans 1heure )
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…