Visual basic éditor archivage et initialisation

cachcach64 Messages postés 2 Date d'inscription mardi 5 décembre 2006 Statut Membre Dernière intervention 11 décembre 2006 - 5 déc. 2006 à 21:52
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 6 déc. 2006 à 17:41
Bonjour a tous,

je suis étudiante. je débute sur vbe et j'aimerai savoir ce qui va pas dans mon début de programmation. Je cherche a archiver et a initialiser une facture.

Voila le début de ma formule :

Sub archivage1()


Dim c As Object
Dim p As Object


Set c = Worksheets("facture").Range("D5")
Set p = Worksheets("facture").Range("B15:B40")


While (p.Value <> " ")
    c.Select
    Selection.Copy
    Sheets("historique achats client").Select
    ActiveSheet.Paste
   
For Each p In Worksheets("facture").Range("B15:B40").Cells
    p.Select
    Selection.Copy
    Sheets("HistoriqueAchatsClients").Select
    ActiveSheet.Paste
    Set p = p.Offset(0, 1)


Next
Wend


End Sub

Pouvez vous me dire où est l'erreur svp!! en vous remerciant.

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 déc. 2006 à 04:45
Salut,

je t'ai corrigé 2 - 3 choses, mais ton code est assez bizarre.
J'ai séparé les While et For Each, en cas, dis avec plus de précisions ce que tu veux faire et vérifie bien le code que je t'ai encadré :

Sub archivage1()

Dim c           As Range  '
*** correction ici
Dim p           As Range  ' *** correction
ici
Dim MyRange     As Range

Set c =  Worksheets("facture").Range("D5")
Set p = Worksheets("facture").Range("B15:B40")

'************************************************************
While p.Value <> ""  ' ici ça marchera jamais
              *
' pis ça veut dire quoi
???                                 *
' Tant que
Range("B15:B40") est différent de rien ?         *
' tu copies tout le temps Range("D5") à la même cellule..   *
'                                                           *
    c.Select '                                              *
    Selection.Copy  '                                       *
    Sheets("historique achats client").Select '             *
    ' *** dans quelle cellule ? '                          
*
    ' Range("A1").Select  'change ici la
destination        *
    ActiveSheet.Paste '                                     *
Wend '                                                      *
'************************************************************

Sheets("HistoriqueAchatsClients").Select
Range("A1").Select
For Each MyRange In p  ' ***
correction ici
    MyRange.Copy
    ' *** dans quelle cellule ?
    ' Range("A1").Select  'change ici la
destination
   
    ActiveSheet.Paste
    ActiveCell.Offset(0, 1).Select
Next
End Sub


~ <small> [code.aspx?ID=39466 Mortalino] </small>
~

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
6 déc. 2006 à 17:41
Pour savoir OU EST L'ERREUR il faudrait deja savoir QUELLE EST L'ERREUR ?

Apres cela je penses que le mysterieux chevalier pourra d'autant mieu t'aider ;-)

@+

E.B.
0
Rejoignez-nous