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

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

  • fichier action.xlsx
    149.1 KB · Affichages: 43
  • tasks19.xlsx
    50.1 KB · Affichages: 43
  • fichier action.xlsx
    149.1 KB · Affichages: 57
  • fichier action.xlsx
    149.1 KB · Affichages: 41

Alex74330

XLDnaute Nouveau
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
 

adel53

XLDnaute Occasionnel
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
 

Alex74330

XLDnaute Nouveau
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 ?
 

Alex74330

XLDnaute Nouveau
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
 

adel53

XLDnaute Occasionnel
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
 

Alex74330

XLDnaute Nouveau
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
 

adel53

XLDnaute Occasionnel
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
 

Alex74330

XLDnaute Nouveau
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 ! :)
 

adel53

XLDnaute Occasionnel
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
 

Alex74330

XLDnaute Nouveau
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 !
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 796
Membres
101 817
dernier inscrit
carvajal