VBA copier/coller d'après les valeurs d'une liste déroulante

J'aurai une dernière demande, je voudrais quand je clique sur "Create a New Project" supprimer des cellules de la colonne copier tout en gardant une partie ? Comme dans mon exemple je voudrais supprimer les cellules E8 et E10 lors de la création d'un nouveau projet et garder la E9.

Pourquoi copiez vous jusque la ligne 500. Cela apporte la question de savoir si vous avez des lignes à copier au delà de la ligne 10 ou non.

Edit : essayez ceci dans l'usf create project (bien que non idéale je vous laisse la méthode copy pour conserver la mise en forme. C'est plus simple)

Private Sub CommandButton1_Click()
Dim dercol As Integer

With Worksheets("Feuil1")
    dercol = .Cells(7, Columns.Count).End(xlToLeft).Column + 1
    .Range("E7").Copy .Cells(7, dercol)
    .Range("E9").Copy .Cells(9, dercol)
End With
End Sub

Ensuite toujours dans cette Usf, remplacez ce code

Private Sub CommandButton2_Click()
Unload Me
Create_From_Existing.Show
End Sub

Bonjour,

le projet étant amener à évoluer et d'avoir des lignes supplémentaires, donc c'est pour ça que j'ai mis jusqu'à la ligne 500, pour être large .

Y a t-il une méthode plus propre pour dire à mon code d'aller à la ligne non vide la plus basse ?

Bonjour

Y a t-il une méthode plus propre pour dire à mon code d'aller à la ligne non vide la plus basse ?

Oui bien sûr. Donc vous voudriez copier les cellules 7, 9 puis de 10 à la dernière ligne ?

Là vous devez m'expliquer ce que vous copier et surtout ce que vous conservez

Du coup, j'ai réussi à modifier mon code.

Est-ce possible de dire à mon code de copier à partir de la colonne E7 toutes les lignes de la colonne E contenant un remplissage de couleur ?

Du coup, j'ai réussi à modifier mon code.

Heu c'est à dire ?

Est-ce possible de dire à mon code de copier à partir de la colonne E7 toutes les lignes de la colonne E contenant un remplissage de couleur ?

Oui mais là sans voir le fichier ...

Voici le fichier :

8classeur1.xlsm (29.19 Ko)

Donc ce que je souhaiterai c'est que quand je clique sur "Create a New Project" ça me copie/colle les lignes E7 et E9 ainsi que les lignes de la colonne E contenant un remplissage de couleur.

Ok. Je vois.
Quid des informations de longueur, etc... on les laisse lorsque l'on copie ?

Il faudrait laisser la Largeur de la maison et la Hauteur sous Plafond.

Remplacez le code par celui ci-dessous

Private Sub CommandButton1_Click()
Dim dercol As Integer
Dim plage As Range

With Worksheets("Feuil1")
    dercol = .Cells(7, Columns.Count).End(xlToLeft).Column + 1
    Set plage = .Range("E7:E" & Range("B" & Rows.Count).End(xlUp).Row)
    plage.Copy .Cells(7, dercol)
    .Cells(8, dercol).ClearContents
    .Cells(10, dercol).ClearContents
End With
End Sub

Dans la même USF, autre point cette ligne est à modifier --> Create_Project.Hide
Mettez ceci

Unload me

Je viens d'essayer ce code, mais il laisse aussi d'autres informations qui ne m'intéresse pas comme Longueur de la maison et hauteur du bâtiment.

Je comprends le code que vous m'avez envoyer, mais n'est il pas possible de lui demander de détecter les cellules avec un remplissage de couleur et de toujours les copier ?

Je comprends le code que vous m'avez envoyer, mais n'est il pas possible de lui demander de détecter les cellules avec un remplissage de couleur et de toujours les copier ?

C'est trop compliqué. Il faudrait ajouter des lignes supplémentaires pour détecter chaque couleur.

Essayez le code comme ceci qui est plus souple si par hasard vous vouliez supprimer ou déplacer des cellules (genre inverser longueur et largeur)

Private Sub CommandButton1_Click()
Dim dercol As Integer
Dim plage As Range

With Worksheets("Feuil1")
    dercol = .Cells(7, Columns.Count).End(xlToLeft).Column + 1
    Set plage = .Range("E7:E" & Range("B" & Rows.Count).End(xlUp).Row)
    plage.Copy .Cells(7, dercol)
    Union(.Cells(8, dercol), .Cells(10, dercol), .Cells(12, dercol), .Cells(14, dercol)).ClearContents
End With
End Sub

Ok parfait merci des infos ça fonctionne parfaitement. J'aurai une demande concernant un autre sujet, est-ce qu'il faut que je crée un autre forum ou je peux rester sur celui-là ?

J'aurai une demande concernant un autre sujet, est-ce qu'il faut que je crée un autre forum ou je peux rester sur celui-là ?

Merci de penser à cela

Bah c'est préférable de créer un nouveau fil surtout si c'est un autre fichier.

Si vous faites un nouveau, -->

Cordialement

Bonjour nouvel update de mon ficher, quand je clique sur le bouton "Create a New Project" une nouvelle fenêtre apparaît. Et j'aimerai pouvoir renseigner un nom de projet et un nom d'architecte et quand je clique sur "Create" créer un nouveau projet en affichant les noms renseignés dans les TextBox sur mon nouveau projet.

image image

Bonjour,

Cela change tout ce qui a été fait cela.

Il me faut votre nouveau fichier afin que je vois ce qui est à modifier

Oui je sais ça modifie beaucoup de choses, je suis désolé.

Donc ce que j'aimerai c'est quand je clique sur le bouton "Create" :

1-Copier/Coller la mise en forme de la colonne E à la prochaine colonne vide

2-Associer les noms renseignés dans les TextBox à cette même colonne

4classeur1.xlsm (32.87 Ko)

Ok mais votre fichier ne reprend pas la proposition ici --> https://forum.excel-pratique.com/s/goto/1067427

Edit : Dans l'USF "Create a New project" remplacez ce code

Private Sub CommandButton1_Click()
Dim dercol As Integer
Dim plage As Range

With Worksheets("Feuil1")
    dercol = .Cells(7, Columns.Count).End(xlToLeft).Column + 1
    Set plage = .Range("E7:E" & Range("B" & Rows.Count).End(xlUp).Row)
    plage.Copy .Cells(7, dercol)
    .Cells(7, dercol) = TextBox1.Value
    .Cells(8, dercol) = TextBox2.Value
    Union(.Cells(9, dercol), .Cells(11, dercol), .Cells(13, dercol), .Cells(15, dercol)).ClearContents
End With
Unload Me
End Sub

NB : j'ai l'impression que vous aviez déplacé des lignes car j'ai dû modifier l'instruction Union

Autre point, dans l'usf Create, remplacez le code comme dit ici --> https://forum.excel-pratique.com/s/goto/1067203
N'utilisez pas l'instruction HIDE qui veut dire cacher. En gros votre USF est toujours ouverte mais cachée à l'arrière plan

Après réflexion, je n'ai plus besoin qu'il copie/colle des valeurs de lignes précises.

Par contre, ce que j'aimerai ajouter c'est de pouvoir aussi copier/coller seulement les formules de la colonne E dans la nouvelle colonne créée. Actuellement il n'y en a pas mais je vais en ajouter

Par contre, ce que j'aimerai ajouter c'est de pouvoir aussi copier/coller seulement les formules de la colonne E dans la nouvelle colonne créée. Actuellement il n'y en a pas mais je vais en ajouter

Quelles formules voulez vous ?

Essayez alors de mettre tout à plat avant de faire le code sans quoi vous n'allez jamais y arriver et tout risque de changer à chaque fois
Si vous faites appel à la programmation, il faut en premier penser au résultat final. La programmation est un détail en soit.

Après il y a toujours des ajustement mais cela doit rester des détails

Edit : là en voyant votre projet, je me posais la question du pourquoi de mettre les références Projet en colonne. Si vous avez 50 projets, vous allez avoir 50 colonnes à droite avec 15 lignes uniquement ?

Voilà j'ai fait le point sur ce que veux précisément. Vous avez raison, étant débutant en programmation je m'éparpille beaucoup. En fait, j'aurai beaucoup plus de lignes environ 300 pour 20-30 projets.

Voilà le fichier avec ce que je veux qu'il fasse exactement, il me manque une seule chose j'arrive à copier/coller la mise en forme d'une colonne mais je n'arrive pas à lui dire de la coller à la dernière colonne vide.

13classeur1.xlsm (37.51 Ko)
Rechercher des sujets similaires à "vba copier coller valeurs liste deroulante"