Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 & "😀" & Derlign + 1) = Tablo
' puis j'efface
Sheets("Contrats CDD").Select
Range("A3😀211").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
 
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
 
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:
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é
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
687
Retour