copie de données

philmar

XLDnaute Occasionnel
Bonjour,

grâce à ce forum, j'arrive à adapter des morceaux de codes à mes besoins, mais je plante sur la copie grâce à tablo :
voici le code :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 23/09/2010 par PHILMAR
'

'
Dim reponse As String

reponse = InputBox("Mot de Passe :")
If reponse = "catalunya" Then
MsgBox "Archivage des données"
'code de la macro d'abord je copie les données
Dim Tablo(2), Derlign As Long

Tablo(0) = Sheets("Contrats CDD").Range("A3:C211").Value
Tablo(0) = Sheets("Contrats CDD").Range("E3:E211").Value

Derlign = Sheets("archive contrats").Range("A65536").End(xlUp).Row
Sheets("archive contrats").Range("A" & Derlign + 1 & ":D" & Derlign + 1) = Tablo
' puis j'efface
Sheets("Contrats CDD").Select
Range("A3:D211").Select
Selection.ClearContents
Range("G3:H211").Select
Selection.ClearContents
Range("M3:N211").Select
Selection.ClearContents
Range("Q3:Q211").Select
Selection.ClearContents
Range("S3:AW211").Select
Selection.ClearContents
Sheets("Accueil").Select


Else
MsgBox "mot de passe incorrect"
End If
End Sub

mais ça plante à la copie des données dans la feuille archive contrats..Je précise que la copie doit se faire à la première ligne vide

, qqun à une idée? merci

Bonne journée à toutes et à tous

Philippe
 

GBI

XLDnaute Occasionnel
Re : copie de données

Bonjour,
Un fichier d'exemple (avec des données anonymes) serait la bienvenue pour illustrer ton propos et clarifier la problématique.
J'ai cependant une question, est-ce normal que tu redéfinisse deux fois de suite la meme variable.

Tablo(0) = Sheets("Contrats CDD").Range("A3:C211").Value
Tablo(0) = Sheets("Contrats CDD").Range("E3:E211").Value

De plus, ce dim déclare quelle variable?
Dim Tablo(2) As Long
 
G

Guest

Guest
Re : copie de données

Bonjour,

Code:
Sub Macro1()
    Dim reponse As String
    reponse = InputBox("Mot de Passe :")
    If reponse = "catalunya" Then
        MsgBox "Archivage des données"
 
        With Sheets("archive contrats")
                .Range("A" & .Range("A" & Rows.Count).End(xlUp).Row + 1).Resize(.Range("A3:C211").Rows.Count, 3).Value = Sheets("Contrats CDD").Range("A3:C211").Value
                .Range("A" & .Range("A" & Rows.Count).End(xlUp).Row + 1).Resize(.Range("E3:E211").Rows.Count, 3).Value = Sheets("Contrats CDD").Range("E3:E211").Value
        End With
        ' puis j'efface
        Sheets("Contrats CDD").Range("A3:A211,G3:H211,M3:N21,Q3:Q211,S3:AW211").ClearContents
 
        Sheets("Accueil").Select
 
    Else
        MsgBox "mot de passe incorrect"
    End If
End Sub
Sans traitement sur les données des tableaux, inutile de passer par eux.
A+
 
Dernière modification par un modérateur:

tbft

XLDnaute Accro
Re : copie de données

bonjour

il faut faire attention à la limite base des tableaux tablo(0)
si l'on souhaite commencer à 1 il faut mettre en haut du module option base 1

ensuite lorsque tu déclares tablo(2) et que tu affecte tablo(x)=range(....) tu obtiens un tableau dont les cellules contiennent pas des valeurs mais des tableaux donc impossible de recoller dans une cellule

note bonjour Hasco je n'avais pas vu ta réponse je suis trop long à frapper désolé
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 862
Membres
103 979
dernier inscrit
imed