Ne copier et coller que certaines lignes d'une feuille excel
Daydayer
Messages postés201Date d'inscriptionmercredi 1 décembre 2004StatutMembreDernière intervention13 août 2005
-
20 mai 2005 à 09:42
Daydayer
Messages postés201Date d'inscriptionmercredi 1 décembre 2004StatutMembreDernière intervention13 août 2005
-
23 mai 2005 à 12:42
bonjour à tous!
j'ai une feuille excel avec des infos. parmi ces infos je dois sélectionner que certaines lignes. une fois ces infos sélectionnées, je dois les coller sur une autre feuille. j'ai essayé le code suivant (c'est un exemple parce que le nombre de lignes à coller est variable):
mais pour la ligne "Sheets("2004").Range("2:2").Select", la compil me dit: 'la méthode select de la classe range a échoué.'
pourquoi?
une autre solution serait de créer un tableau 16 colonnes (parce que 16 types d'infos à stocker) et n lignes (tabl dynamique pour les lignes) dans VB et coller ensuite le tableau en une seule fois... le problème c'est que je sais créer un tab dynamique à une dimension, mais pour les tableaux où les colonnes sont fixes et les lignes dynamiques, je ne sais pas... puis après faut le redimensionner etc, et pour ce genre de tableau, je sais pas faire...
merci beaucoup de votre aide.
Daydayerement Vôtre
A voir également:
Ne copier et coller que certaines lignes d'une feuille excel
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 20111 20 mai 2005 à 20:26
Euh, c'est assez approximatif
En principe on n'utilise pas Range("3:3") mais Range("A3:C3") par exemple
Bon on arrive des fois à sélectionner une ligne comme tu fais mais ça c'est la première fois seulement. Une fois que tu as mis Excel de mauvaise humeur il renacle...
Et puis...
Comme tu voudrais faire tu vas toujour tout coller au même endroit sur ta feuille cible.
la bonne solution c'est quelque chose comme ça qui augmente la ligne cible à chaque collage :
YAPUKA imbriquer la condition qui permet de choisir les lignes qui t'intéressent...
La macro suivante copie les lignes 1 à 10 de la Feuille 1 dans la feuille 2 (à partir de la ligne 8)
Sub Test()
k = 8
For i = 1 To 10
Feuil1.Range("A" & i & ":H" & i).Copy Feuil2.Range("A" & k)
k = k + 1
Next
End Sub
nawakator
Messages postés51Date d'inscriptionlundi 12 mai 2003StatutMembreDernière intervention 8 février 2011 20 mai 2005 à 20:31
Essaye u n truc comme çà
-- déclaration
public strData() As String
public Col As Integer
public Ligne As Integer
-- Initialisation
Col = 16
Ligne = 60
-- Dans un fonction
ReDim Preserve strData(Col, Ligne)
Ligne peute changer sans problème
Pour que Redim marche tu doit déclarer un tableau sans dimension présice. L'instruction Preserve permet de garder les données précédentes si Ligne devient plus grand.