Code VBA : Envoyer par copier/coller et détection première cellule non vide

JPrev

XLDnaute Junior
Bonjour à tous,

Voir fichier ci-joint.

Onglet "UT 1" : Je souhaiterai pour la colonne H qu'à chaque fois que j'entre du texte dans une des cellules (en tapant entrée du coup), l'action soit copiée/collée, dans la colonne A de l'onglet "Plan d'action" à la première cellule VIDE.

Ensuite j'ai une formule pour détecter les onglets dans lesquels l'action est présente.

Un spécialiste du code pour me dire si c'est possible et éventuellement me donner un coup de pouce? :)

Merci, bon weekend à tous,

JPrev
 

JPrev

XLDnaute Junior
Re : Code VBA : Envoyer par copier/coller et détection première cellule non vide

Hey,

J'ai oublié le fichier
 

Pièces jointes

  • Projet EvRP JP.xlsm
    60.4 KB · Affichages: 35
  • Projet EvRP JP.xlsm
    60.4 KB · Affichages: 41
  • Projet EvRP JP.xlsm
    60.4 KB · Affichages: 38

Cousinhub

XLDnaute Barbatruc
Re : Code VBA : Envoyer par copier/coller et détection première cellule non vide

Bonjour,

Code à copier dans l'évènement du "ThisWorkbook"

Nota : pas besoin de formule pour trouver l'onglet qui a été rempli, le code met la croix dans la colonne correspondante (soit colonne B, C ou D)
Et il recopie les formules en colonnes E et F

Si tu n'y arrives pas, n'hésite pas

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim CelDest As Range
Dim Decal As Byte
Application.ScreenUpdating = False
If Sh.Name Like "UT*" And Not Intersect(Target, Sh.Columns(8)) Is Nothing Then
    With Sheets("Plan d'actions")
        Decal = .Rows(2).Find(Sh.Name).Column - 1
        Set CelDest = .Range("A" & Rows.Count).End(xlUp)(2)
        If CelDest.Row = 2 Then Set CelDest = .Range("A3")
        CelDest = Target(1)
        CelDest.Offset(, Decal) = "X"
        If CelDest.Offset(-1, 4).HasFormula Then
            CelDest.Offset(-1, 4).Resize(1, 2).AutoFill Destination:=CelDest.Offset(-1, 4).Resize(2, 2), Type:=xlFillDefault
        End If
    End With
End If
End Sub

Bonne soirée
 

JPrev

XLDnaute Junior
Re : Code VBA : Envoyer par copier/coller et détection première cellule non vide

Bonjour Bhbh,

Merci pour ton aide. J'ai essayé ce matin même d'insérer le code dans mon fichier mais je n'ai rien qui se passe lorsque j'entre une action dans une des cellules prévues à cet effet. Je te renvoie mon fichier avec le code inséré.

Remarque : Les onglets "UT" auront pour modèle l'onglet UT 1 (je travaille en parallèle dessus). Penses-tu qu'il est possible d'avoir une option qui me permet d'ajouter des UT?

Cordialement,

JPrev
 

Pièces jointes

  • Projet EvRP JP.xlsm
    63.4 KB · Affichages: 28
  • Projet EvRP JP.xlsm
    63.4 KB · Affichages: 32
  • Projet EvRP JP.xlsm
    63.4 KB · Affichages: 39

Cousinhub

XLDnaute Barbatruc
Re : Code VBA : Envoyer par copier/coller et détection première cellule non vide

Bonjour,

Effectivement, cela ne fonctionne pas (et ne pourra jamais fonctionner), car tu n'as pas inséré ce code au bon endroit...

Comme il s'agit d'un évènement survenant dans plusieurs onglets, qui ont la particularité de commenter par UT, il faut placer ce code au niveau du classeur.

Lorsque tu es sous Excel, tu appuies sur Alt + F11, tu arrives sur VBE (Visual Basic Editor).
Dans le fichier que tu as mis en dernier, tu as 3 modules, 1 UserForm, et 6 onglets, de Feuil1 à Feuil6, plus un évènement "Classeur", nommé "ThisWorkbook".

C'est dans cet évènement qu'il faut placer ce code.

Ainsi, si tu modifies une cellule de la colonne G (soit column(8)), et que le nom de l'onglet commence par "UT...", le code va se déclencher, et provoquer ce que tu demandes.

Tu peux bien sûr ajouter des onglets supplémentaires, tant qu'ils commencent par "UT..", si tu désires récapituler leurs données dans ton onglet "Plan d'actions".

Regarde le fichier corrigé

Bonne soirée
 

Pièces jointes

  • Projet EvRP JP_v1.xlsm
    68 KB · Affichages: 27

JPrev

XLDnaute Junior
Re : Code VBA : Envoyer par copier/coller et détection première cellule non vide

Salut Bhbh,

D'accord donc dans This Workbook, nous pouvons programmer des choses pour qu'elles se passent sur l'ensemble du classeur c'est ça? N'Est-ce pas beaucoup plus compliqué que de travailler sur les onglets? (Je ne connais que des bases...)

En essayant comme tu as dit (et avec le fichier correspondant), ça marche pour moi. Merci beaucoup pour ton aide :).

2 petites remarques si tu veux bien m'aider à pousser un peu le truc :

- Si j'entre une action identique dans 2 UT, peuvent-elles être sur la même ligne dans le plan d'actions avec les croix dans les 2 UT?
- Si je supprime une action dans une UT, elle n'est pas supprimée du plan d'action (idem si je la modifie du coup), y'a-t-il un moyen pour mettre à jour le plan d'action automatiquement?

Cordialement,

JPrev
 

JPrev

XLDnaute Junior
Re : Code VBA : Envoyer par copier/coller et détection première cellule non vide

Et comment tu peux faire pour que tout ce qui s'inscrit dans le plan d'action soit centré? (Horizontalement et verticalement)

Oui, je suis plutôt embêtant :p
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa