Macro excel, association d'élément

Résolu
shishumi -  
 shishumi -
Bonjour,

Voila j'ai un petit problème,
J'ai deux parties d'un tableau (ces deux parties contiennent des noms et des dates) que je récupère dans un autre et qu'ensuite je copy dans une autre feuille.
voila ma questions :
comment peut-on associer les noms et les dates ensemble comme dans l'autre tableau.

voici le code :

Sub filtre()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long

Sheets("Alert").Activate ' feuille de destination

Col = "i" ' colonne données non vides à tester'
NumLig = 2 ' alors là ca doit etre le N° de la 1er ligne de données en comptant la ligne 1 = 0 .... ? '
With Sheets("PAR CENTRE") ' feuille source'
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, 4).Value <> "" Then
.Cells(Lig, 4).Copy

Sheets("Alert").Cells(NumLig, 2).Insert Shift:=xlDown 'ici pour insérer ou .Paste pour coller'
End If
If IsDate(.Cells(Lig, 12).Value) Then
.Cells(Lig, 12).Copy

Sheets("Alert").Cells(NumLig, 3).Insert Shift:=xlDown 'ici pour insérer ou .Paste pour coller'
End If
Next
End With

en vous remerciant pour votre aide.
Configuration: Windows XP
Firefox 2.0

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    essaies avec ces modifications commentées
    Sub filtre()
    Dim Lig As Long
    Dim Col As String
    Dim NbrLig As Long
    Dim NumLig As Long
    
    Sheets("Alert").Activate ' feuille de destination
    
    Col = "I" ' colonne données non vides à tester' en majuscule !!!
    NumLig = 2 ' alors là ca doit etre le N° de la 1er ligne de données en comptant la ligne 1 = 0 .... ? '
    With Sheets("PAR CENTRE") ' feuille source'
    NbrLig = .Cells(65536, Col).End(xlUp).Row
    For Lig = 1 To NbrLig
    If .Cells(Lig, 4).Value <> "" Then
    '.Cells(Lig, 4).Copy inutile
    
    Sheets("Alert").Cells(NumLig, 2).Resize(1, 2).Insert Shift:=xlDown
            ' les 2 colonnes sont décalées pour rester cohérent
    Sheets("Alert").Cells(NumLig, 2) = .Cells(Lig, 4) 
    End If
    If IsDate(.Cells(Lig, 12).Value) Then
    '.Cells(Lig, 12).Copy inutile
    
    
    'Sheets("Alert").Cells(NumLig, 3).Insert Shift:=xlDown ' inutile
    
    Sheets("Alert").Cells(NumLig, 3) = .Cells(Lig, 12)
    End If
    Next Lig
    End With
    End Sub
    1
  2. shishumi
     
    merci pour ta réponse
    le code marche pour l'association mais il me change mes données date en chiffre comme 35968 c bizar.
    tu n'aurais une solution.
    0
  3. shishumi
     
    c bon g trouver j'avait un problème de format dans ma cellule

    merci.
    0