XL 2013 (Résolu par JOB) importation des données sauf les lignes avec cellules en GRAS

ibni

XLDnaute Nouveau
Bonjour à tous,
Je me permets de solliciter votre aide après avoir parcouru en long et en large mon ami Google ainsi que ce forum en vain.
En fait, je suis absolument nul et j'aimerais savoir est ce que c'est possible d'appliquer le code ci-dessous sur mon fichier joint pour importer toutes les données du fichier Matos vers Recap sans importer les lignes dont une cellule est en GRAS ( c'est à dire les lignes 8, 39,65,99,117,270,307,338,342,343,350,366,372,380,424,460,477,484,504,536,558,574,598,602)

VB:
Private Sub CommandButton1_Click()
Dim t, nlig&, d As Object, i&, rest(), j&
Application.ScreenUpdating = False
With Workbooks.Open(ThisWorkbook.Path & "\Paie-Mens.xlsx").Sheets("Feuil1")
  t = .Range("A5:AC" & .Range("F" & .Rows.Count).End(xlUp).Row + 2)
  nlig = UBound(t)
  .Parent.Close False
End With
'---restitution du 1er tableau---
[E:E].Copy [AE1] 'sauvegarde la colonne E (matricules) en colonne auxiliaire AE
Range("A3:AC" & Rows.Count).ClearContents 'RAZ
[A3].Resize(nlig, 29) = t
'---liste des noms du 1er tableau---
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(t)
  If t(i, 5) <> "" Then d(t(i, 5)) = i 'repère la ligne
Next i
'---création du 2ème tableau (rest)---
t = Range("AD3:AE" & Range("AE" & Rows.Count).End(xlUp).Row + 1)
ReDim rest(1 To nlig, 1 To 1)
For i = 1 To UBound(t)
  If t(i, 2) <> "" And d.Exists(t(i, 2)) Then rest(d(t(i, 2)), 1) = t(i, 1)
Next i
'---restitution du 2ème tableau (rest)---
[[URL='http://ae:af].delete/']AE:AF].Delete[/URL] 'à l'origine il y avait des formules en colonne AF
Range("AD3:AD" & Rows.Count).ClearContents 'RAZ
[AD3].Resize(nlig) = rest
End Sub


Merci pour votre aide
 

Pièces jointes

  • MATOS.xlsx
    63 KB · Affichages: 100
  • RECAP.xlsx
    39.6 KB · Affichages: 95

ibni

XLDnaute Nouveau
re,
merci beaucoup pour votre réponse assez vite
j'ai une dernière remarque si vous permettez
le format des chiffres importés : dans le fichier de destination il est personnalisé de cette façon (# ##0,00\ _€) alors que mois je préfère qu'il soit normal (nombre avec 2 nombres de décimales)
 

ibni

XLDnaute Nouveau
Bonsoir Job,
euh je sais que j'ai exagéré..c'est déjà beaucoup
je vous remercie infiniment et par respect à votre excellent travail je vais garder le code tel qu'il est, même si j'aurais bien aimé ajouté la dernière demande...mais ce n'est pas grave
à bientôt

Amicalement
Ibni
 

job75

XLDnaute Barbatruc
Bonjour ibni, le forum,
je vais garder le code tel qu'il est, même si j'aurais bien aimé ajouté la dernière demande...
J'attendais que vous vous preniez par la main pour formater comme bon vous semble les colonnes H:K.

Mais comme il vous faut du tout cuit :
Code:
    If derlig > 7 Then
        .Range("A8:K" & derlig).Interior.ColorIndex = xlNone 'aucune couleur de fond
        .Range("A8:K" & derlig).Font.ColorIndex = xlAutomatic 'police sans couleur
        .Range("A8:K" & derlig).ClearComments 'supprime les commentaires
        .Range("H8:K" & derlig).NumberFormat = "0.00"  'ou "# ##0.00" ou "# ##0.00 €"
        .Range("J8:K" & derlig) = .Range("J8:K" & derlig).Value 'supprime les formules
        .Range("A8:K" & derlig).Copy F.[A8] 'copie tout le reste
    End If
Ce n'est pas ainsi que vous ferez des progrès en VBA.

Bonne journée.
 

ibni

XLDnaute Nouveau
Bonjour Job,
je reviens vers vous pour une petite rectification si c'est possible biensur,
ci-joint le fichier avec lequel j'ai travaillé,
ce que je souhaiterai faire c'est : d'importer en plus tout matériel qui commence avec OT de la colonne C (feuille Facture du classeur Matos) et les coller a partir de la dernière ligne remplie de la colonne A du fichier (recap)
puis leur montant qui se trouve dans la colonne G (feuille Facture du classeur Matos) et les coller dans la colonne J du Classeur (recap)

Merci d'avance
 

Pièces jointes

  • MATOS.xlsx
    161.7 KB · Affichages: 65
  • RECAP.xlsm
    67.8 KB · Affichages: 60

ibni

XLDnaute Nouveau
Bonsoir Job,
je vous remercie infiniment, c'est exactement ce que je voulais.
je m'excuse parce que je sais que je vous ai cassé la tête avec mes demandes
les deux dernières remarques qui me restent avant de mettre fin à ce fil :
  1. les OT après importation dans RECAP ne sont pas classé comme dans la feuille Facture du classeur MATOS
  2. les bordures de la feuille recap que j'ai dans le fichier ci-joint je viens de m'apercevoir qu'après l'importation changent automatiquement alors que moi je veux garder ceux que j'ai déjà mis
je m'excuse encore une autre fois, et merci pour ce joli travail
je vous en serai reconnaissant éternellement

A+
 

Pièces jointes

  • RECAP.xlsm
    69.1 KB · Affichages: 61

ibni

XLDnaute Nouveau
Bonjour Job,
Merci beaucoup pour ce merveilleux travail, pour le temps que vous avez gaspillé premièrement pour bien lire mes demandes et deuxièmement d'avoir répondu exactement sur ce que je désirais avoir comme macro.
je vous souhaite une très belle journée

à bientôt
 

ibni

XLDnaute Nouveau
Bonsoir Job, le forum

je reviens vers vous pour ce merveilleux code que vous m'avez fourni et qui m'a beaucoup servis dans mon boulot
je souhaite rectifier une petite chose dans le code si c'est possible biensur.
comme vous pouvez constater dans le fichier ci-joint on avait référence au colonnes A,B,C,D,E,F,H
j'aimerais modifier cela et faire référence au colonnes A,B,C,E,F,H c'est à dire exclure D et G

Merci d'avance
 

Pièces jointes

  • RECAP.xlsm
    67.1 KB · Affichages: 65
  • MATOS.xlsx
    71.5 KB · Affichages: 65

job75

XLDnaute Barbatruc
Bonjour ibni, le forum,

Le plus simple et le plus rapide est de concaténer les 6 colonnes A B C E F H directement :
Code:
    For i = 1 To UBound(tablo)
        x = tablo(i, 1) & "#" & tablo(i, 2) & "#" & tablo(i, 3) & "#"
        x = x & tablo(i, 5) & "#" & tablo(i, 6) & "#" & tablo(i, 8)
        d(x) = i 'repérage de la ligne
    Next
Le test If x <> "" Then était tout à fait inutile...

Même chose plus bas.

Fichier (8).

Bonne journée
 

Pièces jointes

  • RECAP(8).xlsm
    67.3 KB · Affichages: 67
  • MATOS.xlsx
    71.5 KB · Affichages: 81

Discussions similaires

Statistiques des forums

Discussions
312 205
Messages
2 086 199
Membres
103 156
dernier inscrit
Ludo94130