Copie suivant condition pour mise en page d'un document

  • Initiateur de la discussion Initiateur de la discussion nak
  • 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 !

nak

XLDnaute Occasionnel
Bonjour à tous,

J'utilise actuellement une macro qui me permet de faire une mise en page suivant les valeurs d'une plage de cellules.

Sub creation()
Dim i As Integer
Dim nomrech As String, cellule As Range

For i = 24 To 49
If Cells(i, 6) <> "" Then

nomrech = Cells(i, 6)

Set cellule = Sheets("Ttype").Range("C25:C65536").Find(nomrech)
If cellule Is Nothing Then
MsgBox "Erreur lors de la recherche.", vbCritical, "Erreur d'opération"
Else
'Renseigne le numéro d'opération
' Sheets("Général").Cells(i, 3).Copy
' Sheets("Ttype").Range(cellule.Offset(0, 9)).Select
' ActiveSheet.Paste

'Détermine la nouvelle ligne vide et copie le tableau
NextRow = Sheets("essai").Range("D65536").End(xlUp).Row + 2
Sheets("Ttype").Range(cellule.Offset(0, 9)).Copy
Sheets("essai").Cells(NextRow, 2).Insert

'Copie le nom de l'opération
Sheets("essai").Range("B65536").End(xlUp).Copy
Sheets("Général").Cells(i, 8).Select
ActiveSheet.Paste

End If

Set cellule = Nothing

End If
Next i

End Sub

Petite explication, suivant les références que je saisi en feuille Général, F24 à F49.
1) Je crée un tableau en feuille essai. Pour cela je copie les tableaux pré-créés en feuille Ttype suivant leurs références. La macro que j'utilise me permet d'éditer mes tableaux sans modifier le moindre code.
2) Je copie le nom attribué à la référence en colonne F de la feuille général.

Aujourd'hui, je voudrais ajouter une fonction avant ces deux commandes.
J'aimerais renseigner les références OP* de la colonne C feuille Général dans la feuille Ttype.
Par exemple, pour la première ligne, je voudrais copier C24 de la feuille général et coller cette valeur en D26😀28 de la feuille Ttype.
Pour la seconde ligne, copier C25 de la feuille général, coller en D32😀33 de la feuille Ttype.
Etc...

Bien attendu les références seront bien plus nombreuses ainsi que les tableaux types. les références peuvent aussi être dans un ordre différent.

Pour l'instant j'ai tenté d'écrire des lignes complémentaires mais sans succès :
''Renseigne le numéro d'opération
' Sheets("Général").Cells(i, 3).Copy
' Sheets("Ttype").Range(cellule.Offset(0, 9)).Select
' ActiveSheet.Paste

Pouvez vous m'aider SVP ?

Merci
 

Pièces jointes

Dernière édition:
Re : Copie suivant condition pour mise en page d'un document

Salut nak et le forum
Pas envie de me creuser la tête
je voudrais copier C24 de la feuille général et coller cette valeur en D26 : D28 de la feuille Ttype.
Tu veux copier une cellule sur 2 cellules.
=> si les cellules réceptrices sont fusionnées, tu ne peux que copier la valeur
Code:
Sheets("essai").Range("B65536").End(xlUp).Copy
Sheets("Général").Cells(i, 8).PasteSpecial (xlPasteValues)
A+
 
Re : Copie suivant condition pour mise en page d'un document

Bonjour,

Merci pour ta réponse Gorfael mais malheureusement cela ne semble pas fonctionner. 🙁

Les cellules réceptrices ne sont pas fusionnées, elles sont en colonne D😀 de la feuille Ttype.
Par contre les cellules copiées sont fusionnées, colonne C:E de la feuille Général.

En fait se qu'il faudrait faire avant mes deux premières commandes c'est reporter les valeurs C24:E49 de la feuille Général en D😀 de la feuille Ttype suivant F24:G49 de la feuille Général et A:A de la feuille Ttype.

Finalement je me demande si cette opération ne devrait pas être indépendante de ma macro. J'exécuterais le transfert des OP* avec une recherchev en vba puis la macro existante.

Je vais creuser dans ce sens, comme quoi une nuit de sommeil et on vois les choses différemment. Merci du conseil. 🙂

Bonne journée
 
Dernière édition:
Re : Copie suivant condition pour mise en page d'un document

Re bonjour,

Finalement je laisse tomber la recherchev avant ma macro car si j'ai des références identiques cela va poser problème.

J'essai donc toujours de copier l'OP* en colonne D soit cellule.Offset(0, 1)) de la feuille Type.

'Copie le numéro d'OP
Sheets("Général").Cells(i, 3).Copy
Sheets("Ttype").Range(cellule.Offset(0, 1)).Select
ActiveSheet.PasteSpecial (xlPasteValues)

Je ne comprends pas pourquoi cela ne fonctionne pas... 🙁

Pouvez vous m'aider SVP ?

Merci
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
497
Réponses
7
Affichages
165
Réponses
16
Affichages
1 K
Réponses
3
Affichages
677
Retour