copier dans un onglet

  • Initiateur de la discussion Initiateur de la discussion al1000
  • Date de début Date de début

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 !

Re : copier dans un onglet

al1000 à dit:
Bonsoir

je joint un fichier

ouvrir le fichier et copier une ligne


a+
Salut
à ma connaissance, tu ne peux pas effectuer ton opération sans passer par une macro
Tu fais une macro en mode apprentissage pour connaître la syntaxe exacte de l'ouverture de ton fichier et copiage de ta ligne, et tu mets ça sur le module de la feuille qui contient B4 :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "B4" Or Range("B4") <> 10 Then Exit Sub

'tes instructions

End Sub
avec pour instructions le code de la macro apprentissage
A+
 
Re : copier dans un onglet

bonjour


j'ai fais ma macro en mode apprentissage pour
ouvrir mon classseur

copie des données

mais je voudrais qu'il choissise l'onglet en fonction de la cellule a4

si a4 =9 c'est l'onglet septembre


ou inscrire ton code?
If Target.Address(0, 0) <> "B4" Or Range("B4") <> 10 Then Exit Sub


a+
 
Re : copier dans un onglet

bonjour

je ne souhaite pas pour l'instant une macro evenementiel

voici mon code
Range("D14").Select

Workbooks.Open Filename:="L:\pro.xls"


'If Target.Address(0, 0) <> "B8" Or Range("B8") <> 10 Then Exit Sub

Windows("pro.xls").Activate
Range("C23:AH23").Select
Selection.Copy

Windows("synthèse des relevés.XLS").Activate
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Workbooks("pro.xls").Close savechanges:=False

Range("C13").Select
End Sub


a+
 
Re : copier dans un onglet

re,

J'ai pas testé mais je dirais quelque chose de ce genre :

Code:
Sub test()
[B][COLOR=blue]Dim val As Variant[/COLOR][/B]
[B][COLOR=blue]val = Range("D14").Value[/COLOR][/B]
Workbooks.Open Filename:="L:\pro.xls"
Windows("pro.xls").Activate
Range("C23:AH23").Copy
Windows("synthèse des relevés.XLS").Activate
[B][COLOR=blue]If val = 4 Then[/COLOR][/B]
[B][COLOR=blue]     Sheets("septembre").Select[/COLOR][/B]
[B][COLOR=#0000ff]Else[/COLOR][/B]
[B][COLOR=#0000ff]    [/COLOR][COLOR=green] 'Si l'onglet n'existe pas, on sort de la macro[/COLOR][/B]
[B][COLOR=#0000ff]     Exit Sub[/COLOR][/B]
[B][COLOR=#0000ff]End If[/COLOR][/B]
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks("pro.xls").Close savechanges:=False
End Sub

Petite remarque, ce code fonctionne uniquement si la variable val (c'est a dire ta cellule A4) prends la valeur 4. Si cette variable peut prendre d'autre valeur, il faudrait rajouter un Select Case pour pouvoir sélectionner l'onglet correspondant.

@+
 
Re : copier dans un onglet

bonjour

(C'est la cellule b8 qui change, et donne le mois à choisir)


Voici comment j'imagine le code
.....
Workbooks.Open Filename:="L:\pro.xls"
If val = 7 Then
Sheets("mois juillet").Select
End If

If val = 8 Then
Sheets("mois aout").Select
End If

If val = 9 Then
Sheets("mois sept").Select
End If

If val = 10 Then
Sheets("mois oct").Select
End If

If val = 11 Then
Sheets("mois nov").Select
End If

If val = 12 Then
Sheets("mois dec").Select


Else
'Si l'onglet n'existe pas, on sort de la macro
Exit Sub

End If
Windows("pro.xls").Activate
Range("C23:AH23").Select
Selection.Copy

....

mais la macro m'indique else sans le bloc if

pourquoi?
 
Re : copier dans un onglet

re,

Je me disais bien qu'il devait y avoir plusieurs mois possible, voici donc le code corrigé :
Code:
Sub test()
Dim val As Variant
val = Range("D14").Value
Workbooks.Open Filename:="L:\pro.xls"
Windows("pro.xls").Activate
Range("C23:AH23").Copy
Windows("synthèse des relevés.XLS").Activate
Select Case val
Case 7
    Sheets("mois juillet").Select
Case 8
    Sheets("mois aout").Select
Case 9
     Sheets("mois sept").Select
Case 10
    Sheets("mois oct").Select
Case 11
    Sheets("mois nov").Select
Case 12
     Sheets("mois dec").Select
Case Else
    'Si l'onglet n'existe pas, on sort de la macro
    Exit Sub
End Select
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks("pro.xls").Close savechanges:=False
End Sub

@+
 
Re : copier dans un onglet

bonsoir,

je comprens un peu la macro

mais c'est dans le classeur pro que j'ai mes onglet mois de janv, mois oct; mois nov

alors que ta macro selectionne les cellules dans le classeur pro
puis les recopie dans un onglet qui correspond au mois

conclusion

il faudrait adapter la macro pour
choisir l'onglet du classeur pro et ensuite selectionner les cellules à copier


je continue à la madifier

a+
 
Re : copier dans un onglet

bonsoir,

j'ai reussi à modifier ma macro

en resume:
elle ouvre le classeur pro
elle choisi l'onglet à ouvrir

et recopie les cellules de a23 à ba 23

et les recopie dans le classeur synthèse dans la cellule c10


mais je voudrai rajouter:
dans le classeur pro ; elle recopie aussi les cellules de a25 à ba 25
et les recopie dans le classeur synthèse dans la cellule c12

omment modifier la macro?


a+
 
Re : copier dans un onglet

Salut Al,

Laisse nous un peu de temps pour répondre.
Est-ce que tu pourrais nous donner le code modifier afin que l'on adapte directement dessus (j'ai la fleme de le modifier) et nous préciser egalement le nom de l'onglet du classeur synthèse.

@+
 
Re : copier dans un onglet

Bonjour,

Voici le code

Sub copie2()
'
Range("b8").Select

Dim val As Variant
val = Range("b8").Value

Workbooks.Open Filename:="L😛ro.xls"

Select Case val

Case 7
Sheets("mois juillet").Select
Case 8
Sheets("mois aout").Select
Case 9
Sheets("mois sept").Select
Case 10
Sheets("mois oct").Select
Case 11
Sheets("mois nov").Select
Case 12
Sheets("mois dec").Select

Case Else
'Si l'onglet n'existe pas, on sort de la macro
Exit Sub
End Select

'copie les heures
Range("C23:AH23").Select
Selection.Copy
Windows("synthèse des relevés.XLS").Activate
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'copie les pieces
Windows("prod.xls").Activate
Range("C28:AH28").Select
Selection.Copy
Windows("synthèse des relevés.XLS").Activate
Range("C12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Workbooks("prod.xls").Close savechanges:=False

Range("C13").Select
End Sub


je veux copier apres avoir choisi l'onglet
la ligne 23 et 28 du meme ongnet et le copier dans l'onglet synthèse

il a t- il une methode plus simple

merci de votre aide

a+
 
Re : copier dans un onglet

Salut,

Désolé mais j'ai un peu de mal a te suivre. Lorsque tu dis je veux copier apres avoir choisi l'onglet tu parles de l'onglet choisit dans le Select Case ?

De plus, tu dis que tu veux copier la ligne 23 et 28 de l'onglet selectionné et les copier dans l'onglet synthèse (je suppose que c'est sur également sur les lignes 23 et 28). Ok, mais cet onglet se trouve sur quel classeur ?

@+
 
- 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
7
Affichages
265
Retour