VBA - Copie d'une feuille dans un classeur + insertion colonne

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

Alex74330

XLDnaute Nouveau
Bonjour à tous ! 🙂

Me voilà confronter à un grand, que dis-je un énorme, une montagne de problèmes !!
Je n'ai jamais (voir très peu) eu à faire à VBA et là je crois que je ne peux pas l'éviter.

1- Je cherche a copié l'onglet "Liste-Actions" du fichier tasks19 dans un nouvel onglet du fichier "fichier action".
Jusqu'à là peut-être rien ne vous effraie.


2- J'aimerai ensuite copier (comme pour les autres) la colonne "Deadline" (Colonne H (numéro 8 pour la recherchev)) dans l'onglet REF du fichier action juste après les autres "taskw16-17..)

Normalement le reste du calcul se fera tout seul.

J'espère avoir été assez claire !
Et je vous remercie tous par avance de votre aide qui m'est précieuse !

Cordialement,
Alexandre
 

Pièces jointes

Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Bonjour adel53,

Mon fichier a évolué depuis mais je n'ai toujours pas résolu cette affaire.
Ce problème reste donc toujours d'actualité et je suis preneur de votre solution 🙂

Cordialement,
Alexandre
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

bonjour Alex

Ci-dessous proposition de macro pour l'instertion de la colonne je l'ai testé sur le fichier action ça fonctionne nickel

Code:
Sub test()
    Dim cell As Range
    Dim rng As Range
    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
    End With
    For Each cell In Range("A1:z1")
        On Error Resume Next
        If Left(cell.Value, 5) = "taskw" And cell.Offset(0, 1).Value = "TOP RO" Then
            Columns(cell.Offset(0, 1).Column).EntireColumn.Insert
        End If
    Next cell
    With Application
        .ScreenUpdating = True
        .Calculation = xlAutomatic
    End With
End Sub
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Re,

Merci beaucoup de ta proposition !
Cependant celà ne fonctionne pas sur mon fichier, rien ne se produit malgré différentes tentatives.

Quand tu executes les macro les 2 feuilles sont ouverts et tout se fait automatiquement ?
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

J'ai modifié "For Each cell In Range("A1:z1")" pour que la formule aille plus loin car actuellement mon fichier est plus gros.
La macro insert desormais une colonne au bon endroit mais ne copie pas les valeurs
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

dsl du retard voici le code il suffit de copier l'onglet en dernier (avec la fonction excel pr le moment) et d'executer la macro
Code:
Sub test()
Dim cell As Range
Dim rng As Range
Dim nom As String
 
With Application
            .ScreenUpdating = False
            .Calculation = xlManual
End With
For Each cell In Range("A1:AK1")
            On Error Resume Next
            If Left(cell.Value, 5) = "taskw" And cell.Offset(0, 1).Value = "TOP RO" And cell.Value <> Sheets(Sheets.Count).Name Then
                        Debug.Print cell.Value
                        Columns(cell.Offset(0, 1).Column).EntireColumn.Insert
                        Sheets(Sheets.Count).Columns("H:H").Copy Destination:=Sheets("REF").Range(cell.Offset(0, 1).Address)
                        Sheets("REF").Range(cell.Offset(0, 1).Address).Value = Sheets(Sheets.Count).Name
            End If
Next cell
With Application
            .ScreenUpdating = True
            .Calculation = xlAutomatic
End With
End Sub
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Bonjour,
Pas de problème pour le retard.

Le code marche bien et insert bel et bien la colonne H de mon fichier task.
Mais comment je peux rentrer la formule ?

Merci beaucoup de ton aide !
Alexandre
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Bonjour
peux tu me dire quelle formule tu veux rentrer?
Je suis en déplacement aujourd'hui je te répondrai d'ici demain.
Détail moi stp tt ce qui reste à faire
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Bonjour,

La formule que je dois rentrer pour la première ligne est: =SIERREUR(RECHERCHEV($A2;taskw21!$A$2:$H$443;8;FAUX);"Non existant").
Pour les prochaines lignes il faut modifier le "A".

Ce qu'il faut faire :
-Inserer une colonne avant TOP RO (ou après la dernière "taskw")
Inserer la formule =SIERREUR(RECHERCHEV($A2;taskw+1!$A$2:$H$443;8;FAUX);"Non existant")
Ou taskw+2 si erreur

Si ces conditions sont remplies, le fichier devrait être niquel ! 🙂
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Bonjour Alex

Comme demandé ajout de la colonne en remplissant avec la recherche V
Code:
Sub test()
    Dim cell As Range
    Dim rng As Range
    Dim nom As String
    Dim derligne
    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
    End With
    derligne = Sheets("REF").Cells(Rows.Count, 10).End(xlUp).Row
    For Each cell In Range("A1:AK1")
        On Error Resume Next
        If Left(cell.Value, 5) = "taskw" And cell.Offset(0, 1).Value = "TOP RO" And cell.Value <> Sheets(Sheets.Count).Name Then
            Debug.Print cell.Value
            Columns(cell.Offset(0, 1).Column).EntireColumn.Insert
            Sheets("REF").Range(cell.Offset(0, 1).Address).Value = Sheets(Sheets.Count).Name
            Range(cell.Offset(1, 1).Address).Formula = "=IFERROR(VLOOKUP(RC1," & Sheets(Sheets.Count).Name & "!R2C1:R51C8,8,FALSE),""Non existant"")"
            Range(cell.Offset(1, 1).Address).AutoFill Destination:=Range(Cells(2, cell.Offset(0, 1).Column), Cells(derligne, cell.Offset(0, 1).Column))
        End If
    Next cell
    With Application
        .ScreenUpdating = True
        .Calculation = xlAutomatic
    End With
End Sub
 
Re : VBA - Copie d'une feuille dans un classeur + insertion colonne

Bonjour Adel !!
Je crois que jepeux que te remercier car après quelques petites modifs pour l'adapter à mon fichier, tout marche niquel !!!
C'est super, merci beaucoup pour ton temps passé et les résultats obtenus ! 🙂

J'ai juste une question subsidiaire mais si tu y réponds ce n'est pas grave.
Saurais-tu comment copier seulement les dates qui diffèrent des tasks précédentes ?

En tout cas, encore 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

Réponses
5
Affichages
544
Retour