copie fichier ds sauvegarde

  • Initiateur de la discussion courtillon
  • Date de début
C

courtillon

Guest
:woohoo: Pas moyen de l'envoyer ce soir : 2 fois ceal suffit je vous le donne comme çà :

Sub SAUVEGARDEFICHECLIENTS()

Dim WsSource As Worksheet
Dim WsCible As Worksheet
Dim tabtemp As Variant
Dim MaLigneSource As tabtemp
Dim MaligneCible As tabtemp
tabtemp = .Range('C4:H' & derlgn)
Dim derlgn As Integer
Set WsSource = Worksheets('Clients')
Set WsCible = Worksheets('Sauvegarde')
Set MaLigneSource = WsSource.Range('C4:H' & derlgn).Value

With WsCible
derlgn = .Range('A65536').End(xlUp).Row + 1
Set MaligneCible = .Range(.Cells(derlgn, 1), .Cells(derlgn, 6))
MaligneCible.Value = MaLigneSource.Value

End With
End Sub

C'est dur ce soir
Merci Courtillon
 

laurent45

XLDnaute Occasionnel
Bonsoir courtillon, le Forum,

STOP coutillon. Arrête de créer de nouveaux post à chaque fois. :angry:
Il faut que tu 'REPONDRE' pour suivre le fil.

Sinon pour ton script, il y a plein d'erreur :
Sub SAUVEGARDEFICHECLIENTS()

Dim WsSource As Worksheet
Dim WsCible As Worksheet
Dim tabtemp As Variant
Dim MaLigneSource As tabtemp
Dim MaligneCible As tabtemp
tabtemp = .Range('C4:H' & derlgn) Fais toute tes déclarations avant d'utiliser des variables
De plus, tu utilises la variable derlgn qui n'est pas définie. Donc ça marche pô

Dim derlgn As Integer

Set WsSource = Worksheets('Clients')
Set WsCible = Worksheets('Sauvegarde')
Set MaLigneSource = WsSource.Range('C4:H' & derlgn).Value

With WsCible
derlgn = .Range('A65536').End(xlUp).Row + 1
Set MaligneCible = .Range(.Cells(derlgn, 1), .Cells(derlgn, 6))
MaligneCible.Value = MaLigneSource.Value

End With
End Sub

Essayes comme ça :
Sub SAUVEGARDEFICHECLIENTS()

Dim WsSource As Worksheet
Dim WsCible As Worksheet
Dim tabtemp As Variant
Dim MaLigneSource As tabtemp
Dim MaligneCible As tabtemp
Dim derlgn As Integer

tabtemp = .Range('C4:H' & derlgn)
Set WsSource = Worksheets('Clients')
Set WsCible = Worksheets('Sauvegarde')

With WsCible
derlgn = .Range('A65536').End(xlUp).Row + 1

Set MaLigneSource = WsSource.Range('C4:H' & derlgn).Value
Set MaligneCible = .Range(.Cells(derlgn, 1), .Cells(derlgn, 6))

MaligneCible.Value = MaLigneSource.Value

End With
End Sub

Je n'ai pas testé, mais le code me parraît plus lisible et devrait donner un résultat.

Bonne Nuit. :pinch:
 
C

courtillon

Guest
;) Bonjour, c'est vrai j'aurais du faire répondre mais je devais dormir debout.La preuve en est que j'arrivais pas à envoyer le fichier pourtant bien zippé et conforme au tutoriel mais bon comprenne qui pourras.
Milles + 1 excuses à vous tous et merci d'avoir répondu toi aussi à une heure aussi tardive.
Je vais essayez tes corrections sachant qu'il y a trois semaines je ne savais même pas comment fonctionné VBA
Courtillon [file name=SAUVEGARDE.zip size=8238]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SAUVEGARDE.zip[/file]
 

Pièces jointes

  • SAUVEGARDE.zip
    16.9 KB · Affichages: 15
  • SAUVEGARDE.zip
    16.9 KB · Affichages: 12
  • SAUVEGARDE.zip
    16.9 KB · Affichages: 17

Hervé

XLDnaute Barbatruc
Bonjour courtillon, laurent, le forum

Courtillon, ton code modifié. Il faut respecter une certaine logique, tu ne peux pas utiliser une variable derligne avant de l'avoir initialiser.

Sub SAUVEGARDEFICHECLIENTS()

Dim WsSource As Worksheet
Dim WsCible As Worksheet
Dim MaLigneSource As Range
Dim MaligneCible As Range
Dim derlgn As Integer

Set WsSource = Worksheets('Clients')
Set WsCible = Worksheets('Sauvegarde')

derlgn = WsSource.Range('C65536').End(xlUp).Row

Set MaLigneSource = WsSource.Range('C4:H' & derlgn)

     
     
With WsCible
            derlgn = .Range('A65536').End(xlUp).Row + 1
           
Set MaligneCible = .Range(.Cells(derlgn, 1), .Cells(derlgn - 1 + MaLigneSource.Rows.Count, 6))
            MaligneCible.Value = MaLigneSource.Value
     
End With
     
End Sub


Une autre facon de faire :

Sub Bouton3_QuandClic()
Dim tablo As Variant
Dim derligne As Integer

tablo = Range('c4').CurrentRegion

With Sheets('Sauvegarde')
    derligne = .Range('a65536').End(xlUp).Row + 1
    .Range('a' & derligne).Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End With
End Sub


salut
 
C

courtillon

Guest
:) J'ai encore avancé dans mon projet et dans mes connaissances en VB grace à toi sans oublier ceux qui m'ont aidé auparavant.
Tout fonctionne. Peut être à une autre fois . J'ai vu aussi en me relisant qu'il y avait beaucoup de fautes d'ortographe dans mes blablas.
J'ai encore une histoire de bouton qui dit oui ou non à une question mais je vais essayer tout seul d'abord c'est comme cela que l'on progresse.
Un grand merci
Courtillon
 

Statistiques des forums

Discussions
312 836
Messages
2 092 655
Membres
105 479
dernier inscrit
chaussadas.renaud