vba en boucle à travers l'écriture de scope sur csv

J'ai écrit cette macro. Elle est supposée boucler une gamme et si cette plage contient un nombre, copyz les cellules offset dans un csv ou sur une autre feuille. Actuellement, lorsque je supprime le code qu'il exécute sans sortir mais qu'il n'y a pas de sortie dans mon file text, il n'y a pas non plus de messages d'erreur.

Je ne sais pas ce qui se passe? des pointeurs? merci s'il vous plait.

Dim rng As Range, cell As Range Dim ofset As Ssortingng Dim filepath As Ssortingng Set rng = Range("F1:F100") For Each cell In rng If IsError(cell) Then 'MsgBox "cell " & cell.Address & " contains error" ElseIf cell.Value > 0 Then ofset = cell.Offset(, -2).Resize(, 2).Select 'gives you B1:C1 ' copy this range to text file filepath = Application.DefaultFilePath & "\authors.csv" Open filepath For Output As #2 Write #2, cell.Value & ofset Close #2 End If Next cell MsgBox "The values have been copyd" 

La date du file est-elle mise à jour sur chaque passe?

Il peut y avoir une string nulle à la fin des données. Si vous ne souhaitez pas get la dernière valeur, modifiez ceci:

 Open filepath For Output As #2 

à

 Open filepath For Append As #2 Dim rng As Range, cell As Range Dim ofset As Ssortingng Dim filepath As Ssortingng Set rng = Range("F1:F100") For Each cell In rng If IsError(cell) Then 'MsgBox "cell " & cell.Address & " contains error" ElseIf cell.Value > 0 Then ofset = cell.Offset(, -2).Resize(, 2).Select 'gives you B1:C1 ' copy this range to text file filepath = Application.DefaultFilePath & "\authors.csv" Open filepath For Output As #2 oValues = "" For each c in ofset oValues=Ovalues & c.value next Write #2, cell.Value & oValues Close #2 End If Next cell MsgBox "The values have been copyd" 

Ce code ci-dessous semble copyr les VALUES de la cellule décalée dans le CSV. Il donne le résultat souhaité. Pour l'instant, cela suffira, mais je vais chercher un moyen de prendre les valeurs et de les placer dans des colonnes individuelles.

  Sub Test3() Dim rng As Range, cell As Range Dim ofset As Ssortingng Dim filepath As Ssortingng Set rng = Range("F1:F100") For Each cell In rng If IsError(cell) Then 'MsgBox "cell " & cell.Address & " contains error" ElseIf cell.Value > 0 Then cell.Offset(, -2).Resize(, 2).Select 'gives you B1:C1 ' copy this range to text file filepath = "C:\Users\Jabaar\Documents\authors.csv" Open filepath For Append As #2 Write #2, cell.Value & " " & cell.Offset(, -2).Value & " " & cell.Offset(, -4).Value Close #2 End If Next cell MsgBox "The data has been collected" End Sub