cs_emmanuel15
Messages postés30Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention16 novembre 2005
-
14 nov. 2005 à 19:06
cs_emmanuel15
Messages postés30Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention16 novembre 2005
-
16 nov. 2005 à 09:35
Bonjour à tous,
Petit pb : je voudrais actualiser différents fichiers à partir de données tirées d'une base.
Je bosse en vb sur Excel.
Pas de pb pour envoyer ttes info automatiquement dans différents fichiers.
Mais par contre qd ma macro tourne, les données importées écrasent les anciennes...
Je voudraient qu'elles viennent plutôt se placer derrières les données importées précédemment.
Pour cela j'avais pensé à faire demander à ma macro de copier les données de la base à partir de la première ligne vide. Mais ca n'a pas marché...
Est-ce possible?
Si je ne suis pas assez clair, n'hésitez pas à me demander des précisions.
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 16 nov. 2005 à 01:12
Lut,
Ces modifs devraient réssoudre ton prob mais il y a des méthodes plus efficaces pour arriver au même résultat.
Workbooks("Base.xls").Activate
Sheets(1).Activate
Dim k As Integer
Dim i As Integer
Dim xlRow As Long
k = 1
i = 1
While Cells(i, 1) <> Empty If (Cells(i, 1) "XXX") Or (Cells(i, 1) "YYY") Then
tableau(k, 1) = Cells(i, 1)
tableau(k, 2) = Cells(i, 2)
tableau(k, 3) = Cells(i, 3)
tableau(k, 4) = Cells(i, 4)
k = k + 1
End If
i = i + 1
Wend
Workbooks("Base XXX.xls").Activate
Sheets(1).Activate
xlRow = Cells(65536, 1).End(xlUp).Offset(1, 0).Row
For i = 2 To k
Cells(xlRow + i, 1) = tableau(i, 1)
Cells(xlRow + i, 2) = tableau(i, 2)
Cells(xlRow + i, 3) = tableau(i, 3)
Cells(xlRow + i, 4) = tableau(i, 4)
Next i
cs_emmanuel15
Messages postés30Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention16 novembre 2005 15 nov. 2005 à 15:18
Merci.
J'arrive à selectionner la première ligne vide mais les données importées écrasent quand même les anciennes.
Je pense que c'est du à mon code qui ne doit pas être approprié (je ne suis pas pro, indulgeance svp).
Le voici :
Workbooks("Base.xls").Activate
Sheets(1).Activate
Dim k As Integer
Dim i As Integer
k = 1
i = 1
While Cells(i, 1) <> Empty If (Cells(i, 1) "XXX") Or (Cells(i, 1) "YYY") Then
tableau(k, 1) = Cells(i, 1)
tableau(k, 2) = Cells(i, 2)
tableau(k, 3) = Cells(i, 3)
tableau(k, 4) = Cells(i, 4)
k = k + 1
End If
i = i + 1
Wend