Découper un série de cellules

guy72

XLDnaute Impliqué
Bonjour,
J'ai ce morceau de macro :

With FeWS2300
'Pressions
Set Source = .Range("AM5:AX"): Colonne = "F"
FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
'Températures
Etc.....
'Vent
Ect.....
'Pluie
Etc....
'Soleil
Etc.....
Sheets("Février").Select
End With


La macro me copie les valeurs des cellules AM5:AX5 de la feuille "WS_2300" et les collent dans la feuille "Février" à partir de la colonne F de 2 lignes en 2 lignes.
Je souhaite maintenant, recopier que quelques cellules.

J'ai essayé c'est 4 solutions:

Set Source = .Range("AM5:AN5,AP5:AT5,AV5:AX5"): Colonne = "F" ou -->
Set Source = .Range("AM5:AN5;AP5:AT5;AV5:AX5"): Colonne = "F" ou-->
Set Source = .Range("AM5:AN5,AP5:AT5,AV5:AX5"): Colonne = "F" ou-->
Set Source = .Range("AM5:AN5";"AP5:AT5";"AV5:AX5"): Colonne = "F" ou-->
Set Source = .Range("AM5:AN5","AP5:AT5","AV5:AX5"): Colonne = "F"


Etc....etc....ça ne fonctionne pas.
Y a-t-il une solution ?
Merci de votre aide
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Découper un série de cellules

Salut guy72 et le forum
Pas sûr de tout comprendre. Donc, juste des remarques anodines :
- utilises les balises de code, elles sont là pour faciliter la lecture
Code:
Set Source = .Range("AM5:AX"): Colonne = "F"
Un extrait de code, donc, on extrapole. Le ":" sert de séparateur d'instruction. Donc, ce que je lis :
Code:
Set Source = .Range("AM5:AX")
Colonne = "F"
Remplir la variable range du nom de Source avec les cellules d'adresse AM5:AX => manque la ligne de fin de l'adresse. tototiti2008 t'a donné une solution.
A+
 

guy72

XLDnaute Impliqué
Re : Découper un série de cellules

Bonjour,
Les balises, je ne sais pas ,
Comme je l'ai dit plus haut, j'ai modifié mon message, j'avais oublié le chiffre 5 après les lettres
Quand j'ai

Set Source = .Range("AM5:AX5")
ça fonctionne, mais pas quand je mets

Set Source = .Range("AM5:AN5; AP5;AT5;AV5:AX5")
ça ne fonctionne pas.

Ok, j'ai trouvé pour la balise
 

Gorfael

XLDnaute Barbatruc
Re : Découper un série de cellules

Salut guy72 et le forum
Les balises, je ne sais pas : mode avancé icone #
Le problème est que tu ne lis pas les réponses, tu les interprètes après y avoir lancé un bref coup d'œil
Code:
Set Source = .Range("AM5:AN5,AP5:AT5,AV5:AX5"): Colonne = "F"
réponse de tototiti2008, au-dessus. Effectivement il n'a sans doute pas compris ton besoin : il met dans Source les cellules :
AM5:AN5 (de la cellule AM à la cellule AN)
AP5:AT5 (de la cellule AP à la cellule AT)
AV5:AX5 (de la cellule AV à la cellule AX, tout ça pour la ligne 5).

Quand tu as un problème, utilises le copier/coller => ça t'évitera bien des déboires !

Dans VBA, la langue utilisé est l'anglais => aucune raison d'utiliser un séparateur français !
Le séparateur de cellule est la virgule, et non le point-virgule !
Code:
Sub test()
Dim source As Range
Set source = Range("AM5:AN5,AP5:AT5,AV5:AX5")
MsgBox "source adresse :" & source.Address(0, 0)
End Sub
Essaie ça ! Et pas en recopie, en copier/coller.
Et si ça ne correspond pas à tes besoin, ne mets pas de code, explique, en français, ce que tu veux faire.
A+
 

guy72

XLDnaute Impliqué
Re : Découper un série de cellules

Bonjour Gorfae
Voici une explication de ce que je souhaite, en espérant être clair.
Je souhaite copier la ligne 5 de A jusqu’ à AK.
La macro « Transfert » fonctionne parfaitement.
Mais dans la feuille « Février », j’ai ajouté 8 colonnes, si bien que les collés ne se font plus au bon endroit et dans certaines de ces cellules, j’ai des formules (colonnes H, N, Y et AE), il ne faut pas copier dessus.
Comme je ne peux pas ajouter des colonnes dans la feuille récap, il faudrait copier de cette façon.
Avant, j’avais :
Pression :
Code:
Set Source = .Range("A5:G5"): Colonne = "F"
Températures :
Code:
Set Source = .Range("H5:N5"): Colonne = "S"
Etc……
Et maintenant, je souhaiterais avoir :
Pression : Exemple
Code:
Set Source = .Range("A5,C5 :E5,P5"): Colonne = "F"
Températures :
Code:
Set Source = .Range("H5,J5 :L5,N5"): Colonne = "W"
Mais avec ces deux dernières lignes de code, ça ne fonctionne pas.

Je joins un fichier réduit pour exemple.
Cijoint.fr - Service gratuit de dépôt de fichiers
Cordialement
Guy

PS:
Si non, j'ai cette solution là, mais elle est grosse.

Code:
Sub Transfert()

Dim FeRécap As Worksheet
Dim FeFévrier As Worksheet
Dim Source As Range
Dim Colonne As String

Set FeRécap = Worksheets("Récap")
Set FeFévrier = Worksheets("Février")
With FeRécap
'Pressions mini
   Set Source = .Range("A5"): Colonne = "F"
   FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
   Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
'Pressions heure mini et Pression maxi
   Set Source = .Range("C5:E5"): Colonne = "J"
   FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
   Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
'Heure maxi
   Set Source = .Range("G5"): Colonne = "P"
   FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
   Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
'Températures mini
   Set Source = .Range("H5"): Colonne = "W"
   FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
   Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
'Températures heure mini et Pression maxi
   Set Source = .Range("J5:L5"): Colonne = "AA"
   FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
   Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
'Heure maxi
   Set Source = .Range("N5"): Colonne = "AG"
   FeFévrier.Range(Colonne & 65535).End(xlUp).Offset(2, 0). _
   Resize(Source.Rows.Count, Source.Columns.Count).Value = Source.Value
Sheets("Février").Select
  End With
  Call Flèche
End Sub
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Découper un série de cellules

Salut guy72 et le forum
Déjà le 9ème poste, et on n'a pas avancé d'un iota.

Rappel : on n'est ni télépathe, ni devin et comme tu es devant ton écran, tu caches.

Sur ton fichier rien n'est en corrélation avec ta demande : on ne sait pas ce qu'il faut faire.

Ce que je crois comprendre :
Feuille Février : des données
Feuille Récap : l'archivage des feuille de données.

1er : les feuilles de données ont un nom variable (vraisemblablement le nom du mois) => la macro ne pourra pas s'appuyer sur le nom de l'onglet. Le nom informatique serait un substitue intéressant, mais comme on est à Feuil10 et Feuil28, je gage qu'on risque des problèmes. Reste 2 solutions :
- par l'indice, en demandant que la feuille soit placée en premier (indice : 1) ou en dernier (indice : sheets.count) ou qu'elle précède ou suive la feuille récap, avec une boîte de dialogue de vérification.
- Par nom de l'onglet, soit dans une inputbox, soit dans une combobox sur USF ou Formulaire.

Les données de D11 à D21 (les lignes impaires) doivent être transférées sur la feuille récap, à partir de la première ligne vide ou de celle-ci+2, collage toutes les 3 lignes => Ne connaissant rien de l'utilisation du classeur, je peux difficilement proposer une méthode : en général, les archives sont sans mises en forme. De plus, une archive sans la date....

Ce qui donnerait un copier de Février ligne 11 et un coller spécial sur récap en ligne 8
D=>A, F=>C, J=>E, L=>G, W=>J, AA=>L, AC=>N, AG=>P, AN=>Q, AP=>S, AR=>U, AT=>W, AV=>Y, AX=>AA, AZ=>AC, BG=>AD, BI=>AF, BK=>AH et BM:BP=>AJ:AM (J'ai pas contrôlé, mais ça me semble être des séquences de 4 qui se répètent).

A+
 

guy72

XLDnaute Impliqué
Re : Découper un série de cellules

Bonjour,
Je ne sais pas quoi dire de plus, voici un fichier qui fonctionne avec ma version de code "Transfert" (que je trouve trop gros.
Je voulais savoir si il était possible de le réduire dans les parties "Pressions et Températures.
Pour voir ce que je souhaitais, pour débuter le mois la ligne 11 de "Février" est vide à part les jours de la semaine.
Il suffit d'appuyer sur le bouton "Transfert" qui montrera ce qui se passe.
La ligne 1 de "Récap" sert juste pour me rappeler les colonnes de la page "Février".
Sinon le résultat est que la ligne 5 de la feuille "Récap" se copie sur la ligne 11 de la feuile "Février".
Et ainsi de suite, je suate une ligne avec les relvés qui se trouvent en feuille "Récap.
La page "Récap" peut être en première (d'aillieurs, c'est mieux).
Effectivement après, il ya tous les autres mois.

Cijoint.fr - Service gratuit de dépôt de fichiers

Ce qui donne sur le site (sans les modifications actuelles)
 
Dernière édition:

Discussions similaires