Bonjour,
Si vous pouviez me sortir le ma galère ...
Ma macro extrait des données lignes par ligne d'un fichier dans un autre :
J'utilise "Col" (Byte) pour me déplacer dans les tableaux (la ligne 2 de WbCumul.Sheets(Produit) contient les lettres des colonnes à extraire de wb.Sheets(2))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ... 'extraction des informations LignePV , colonnes 1 à 4 (présence de données obligatoires) Do While WbCumul.Sheets(Produit).Cells(2, Col) <> "" 'prend les valeurs tant que toutes les colonnnes où se trouvent potentiellement des mesures n'ont pas été copiées WbCumul.Sheets(Produit).Cells(NumCumLigneVide, Col) = wb.Sheets(2).Range(WbCumul.Sheets(Produit).Cells(2, Col) & LignePV).Value Col = Col + 1 Loop ...'extraction des informations à lignePV et colonnes suivantes (de Col à Col+11) (présence de données obligatoires)
Les colonnes 1 à 5 et ?? à la fin de WbCumul.Sheets(Produit) ont toujours des valeurs extraites (?? dépendant du produit et jamais identique) (date et nom produit par exemple)
Comme certaines lignes extraites dans WbCumul.Sheets(Produit) ne contiennent pas toujours des informations (sauf sur les colonnes A à D et ?? à la fin) je souhaite les supprimer
Comme je ne connais pas ?? je pensais faire :
Mais même en fixant les valeur de .Cells (".Cells(5, 2): .Cells(5, 3)") j'ai un run-time error 1004 (application defined or objet defined error) en sur le if
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ColF = Col - 1 Col = 5 'on remet la valeur de la colonne à "zéro" With WbCumul.Sheets(Produit) If WorksheetFunction.CountA(.Range("Cells(NumCumLigneVide,Col):Cells(NumCumLigneVide,ColF)")) = 0 Then WbCumul.Sheets(Produit).Cells(NumCumLigneVide, 1).entire.Row.Delete 'effacer la ligne End With
Comment faire pour supprimer mes lignes dont les cellules sont vides entre les colonnes 5 et ?? (sans convertir les numéros de colonne en lettre) donc en restant en référence absolue
Merci pour vos propositions (ou correction)
Partager