IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA Excel] - Copier ligne si un ID pas présent dans annuaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut [VBA Excel] - Copier ligne si un ID pas présent dans annuaire
    Bonjour à tous

    J'espère que le long week-end de Pâques fut bon.

    Je vous sollicite pour une petit souci en VBA dont je ne trouve pas la solution.

    Je dispose de deux classeurs: ClasseursA et ClasseursB. Le ClasseurA dispose en colonne D d'dientifiant client qui changent de manière mensue; c'est un fichier accesible par le management seulement. ClasseurB reprends exactement les mêmes data mais est nominatif et accessible par un individu propre.

    Je souhaiterais rafraichir ClasseurB en fonction de ClasseurA.

    J'ai tenté ce code qui marche partiellemt mais sur une même feuille donc ce n'est pas top:

    Sub Refreh()
    nbLigA = Range("D" & Rows.Count).End(xlUp).Row
    NbLigB = Range("D" & Rows.Count).End(xlUp).Row
    If NbLigB > 1 Then NbLigB = NbLigB + 1
    For i = 1 To nbLigA
    If IsError(Application.Match(Cells(i, 4), Range("D"), 0)) Then
    Cells(NbLigB, 4) = Cells(i, 4)
    NbLigB = NbLigB + 1
    End If
    Next i
    End Sub

    Pourriez-vous m'aider svp ?

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, ne sachant pas si les classeurs sont ouverts ou pas, j'ai ajouté une fonction pour vérifier. N'oubliez pas de changer les noms des feuilles et chemins d'accès aux classeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function WorkbookIsOpen(ByVal WorkbookName As String) As Boolean
        Dim wb As Workbook
        On Error Resume Next
        Set wb = Workbooks(WorkbookName)
        On Error GoTo 0
        If Not wb Is Nothing Then WorkbookIsOpen = True
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub Refresh()
        Dim wbA As Workbook, wbB As Workbook
        Dim wsA As Worksheet, wsB As Worksheet
        Dim nbLigA As Long, nbLigB As Long, i As Long
        Dim ClasseurA As String, ClasseurB As String
     
        ClasseurA = "ClasseurA.xlsx"
        ClasseurB = "ClasseurB.xlsx"
     
        ' Vérifier si les classeurs sont déjà ouverts
        If Not WorkbookIsOpen(ClasseurA) Then
            Set wbA = Workbooks.Open("C:\chemin\vers\ClasseurA.xlsx")
        Else
            Set wbA = Workbooks(ClasseurA)
        End If
     
        If Not WorkbookIsOpen(ClasseurB) Then
            Set wbB = Workbooks.Open("C:\chemin\vers\ClasseurB.xlsx")
        Else
            Set wbB = Workbooks(ClasseurB)
        End If
     
        ' Sélectionner les feuilles de calcul
        Set wsA = wbA.Sheets("Feuil1")
        Set wsB = wbB.Sheets("Feuil1")
     
        ' Trouver le nombre de lignes dans chaque feuille de calcul
        nbLigA = wsA.Range("D" & wsA.Rows.Count).End(xlUp).Row
        nbLigB = wsB.Range("D" & wsB.Rows.Count).End(xlUp).Row
     
        ' Si ClasseurB a des données, passer à la ligne suivante
        If nbLigB > 1 Then nbLigB = nbLigB + 1
     
        ' Parcourir les lignes dans ClasseurA
        For i = 1 To nbLigA
            ' Vérifier si l'identifiant client existe dans ClasseurB
            If IsError(Application.Match(wsA.Cells(i, 4), wsB.Range("D:D"), 0)) Then
                ' Ajouter l'identifiant client à ClasseurB s'il n'existe pas
                wsB.Cells(nbLigB, 4) = wsA.Cells(i, 4)
                nbLigB = nbLigB + 1
            End If
        Next i
     
        ' Enregistrer et fermer les classeurs
        If Not WorkbookIsOpen(ClasseurA) Then
            wbA.Close SaveChanges:=False
        End If
        If Not WorkbookIsOpen(ClasseurB) Then
            wbB.Close SaveChanges:=True
        End If
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Franc Voir le message
    Bonjour, ne sachant pas si les classeurs sont ouverts ou pas, j'ai ajouté une fonction pour vérifier. N'oubliez pas de changer les noms des feuilles et chemins d'accès aux classeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function WorkbookIsOpen(ByVal WorkbookName As String) As Boolean
        Dim wb As Workbook
        On Error Resume Next
        Set wb = Workbooks(WorkbookName)
        On Error GoTo 0
        If Not wb Is Nothing Then WorkbookIsOpen = True
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub Refresh()
        Dim wbA As Workbook, wbB As Workbook
        Dim wsA As Worksheet, wsB As Worksheet
        Dim nbLigA As Long, nbLigB As Long, i As Long
        Dim ClasseurA As String, ClasseurB As String
     
        ClasseurA = "ClasseurA.xlsx"
        ClasseurB = "ClasseurB.xlsx"
     
        ' Vérifier si les classeurs sont déjà ouverts
        If Not WorkbookIsOpen(ClasseurA) Then
            Set wbA = Workbooks.Open("C:\chemin\vers\ClasseurA.xlsx")
        Else
            Set wbA = Workbooks(ClasseurA)
        End If
     
        If Not WorkbookIsOpen(ClasseurB) Then
            Set wbB = Workbooks.Open("C:\chemin\vers\ClasseurB.xlsx")
        Else
            Set wbB = Workbooks(ClasseurB)
        End If
     
        ' Sélectionner les feuilles de calcul
        Set wsA = wbA.Sheets("Feuil1")
        Set wsB = wbB.Sheets("Feuil1")
     
        ' Trouver le nombre de lignes dans chaque feuille de calcul
        nbLigA = wsA.Range("D" & wsA.Rows.Count).End(xlUp).Row
        nbLigB = wsB.Range("D" & wsB.Rows.Count).End(xlUp).Row
     
        ' Si ClasseurB a des données, passer à la ligne suivante
        If nbLigB > 1 Then nbLigB = nbLigB + 1
     
        ' Parcourir les lignes dans ClasseurA
        For i = 1 To nbLigA
            ' Vérifier si l'identifiant client existe dans ClasseurB
            If IsError(Application.Match(wsA.Cells(i, 4), wsB.Range("D:D"), 0)) Then
                ' Ajouter l'identifiant client à ClasseurB s'il n'existe pas
                wsB.Cells(nbLigB, 4) = wsA.Cells(i, 4)
                nbLigB = nbLigB + 1
            End If
        Next i
     
        ' Enregistrer et fermer les classeurs
        If Not WorkbookIsOpen(ClasseurA) Then
            wbA.Close SaveChanges:=False
        End If
        If Not WorkbookIsOpen(ClasseurB) Then
            wbB.Close SaveChanges:=True
        End If
    End Sub
    Merci beaucoup pour votre sollicitude et votre retour ultra rapide.
    Le code fonctionne a une exception près (que je n'ai pas mentionné...Désolé). Il faudrait copier toute la ligne en question et aussi supprimer la ligne si elle n'est pas dans la source.

    Merci encore Franc

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Modifications faites.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub Refresh()
        Dim wbA As Workbook, wbB As Workbook
        Dim wsA As Worksheet, wsB As Worksheet
        Dim nbLigA As Long, nbLigB As Long, i As Long, j As Long
        Dim ClasseurA As String, ClasseurB As String
        Dim copyRange As Range
     
        ClasseurA = "ClasseurA.xlsx"
        ClasseurB = "ClasseurB.xlsx"
     
        ' Vérifier si les classeurs sont déjà ouverts
        If Not WorkbookIsOpen(ClasseurA) Then
            Set wbA = Workbooks.Open("C:\chemin\vers\ClasseurA.xlsx")
        Else
            Set wbA = Workbooks(ClasseurA)
        End If
     
        If Not WorkbookIsOpen(ClasseurB) Then
            Set wbB = Workbooks.Open("C:\chemin\vers\ClasseurB.xlsx")
        Else
            Set wbB = Workbooks(ClasseurB)
        End If
     
        Set wsA = wbA.Sheets("Feuil1")
        Set wsB = wbB.Sheets("Feuil1")
     
        ' Trouver le nombre de lignes dans chaque feuille de calcul
        nbLigA = wsA.Range("D" & wsA.Rows.Count).End(xlUp).Row
        nbLigB = wsB.Range("D" & wsB.Rows.Count).End(xlUp).Row
     
        ' Si ClasseurB a des données, passer à la ligne suivante
        If nbLigB > 1 Then nbLigB = nbLigB + 1
     
        ' Parcourir les lignes dans ClasseurA
        For i = 1 To nbLigA
            ' Vérifier si l'identifiant client existe dans ClasseurB
            If IsError(Application.Match(wsA.Cells(i, 4), wsB.Range("D:D"), 0)) Then
                ' Copier toute la ligne à ClasseurB si l'identifiant client n'existe pas
                Set copyRange = wsA.Rows(i)
                copyRange.Copy Destination:=wsB.Rows(nbLigB)
                nbLigB = nbLigB + 1
            End If
        Next i
     
        ' Supprimer les lignes dans ClasseurB qui ne sont pas dans ClasseurA
        For j = nbLigB - 1 To 1 Step -1
            If IsError(Application.Match(wsB.Cells(j, 4), wsA.Range("D:D"), 0)) Then
                wsB.Rows(j).Delete
            End If
        Next j
     
        ' Enregistrer et fermer les classeurs
        If Not WorkbookIsOpen(ClasseurA) Then
            wbA.Close SaveChanges:=False
        End If
        If Not WorkbookIsOpen(ClasseurB) Then
            wbB.Close SaveChanges:=True
        End If
    End Sub

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Franc Voir le message
    Modifications faites.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub Refresh()
        Dim wbA As Workbook, wbB As Workbook
        Dim wsA As Worksheet, wsB As Worksheet
        Dim nbLigA As Long, nbLigB As Long, i As Long, j As Long
        Dim ClasseurA As String, ClasseurB As String
        Dim copyRange As Range
     
        ClasseurA = "ClasseurA.xlsx"
        ClasseurB = "ClasseurB.xlsx"
     
        ' Vérifier si les classeurs sont déjà ouverts
        If Not WorkbookIsOpen(ClasseurA) Then
            Set wbA = Workbooks.Open("C:\chemin\vers\ClasseurA.xlsx")
        Else
            Set wbA = Workbooks(ClasseurA)
        End If
     
        If Not WorkbookIsOpen(ClasseurB) Then
            Set wbB = Workbooks.Open("C:\chemin\vers\ClasseurB.xlsx")
        Else
            Set wbB = Workbooks(ClasseurB)
        End If
     
        Set wsA = wbA.Sheets("Feuil1")
        Set wsB = wbB.Sheets("Feuil1")
     
        ' Trouver le nombre de lignes dans chaque feuille de calcul
        nbLigA = wsA.Range("D" & wsA.Rows.Count).End(xlUp).Row
        nbLigB = wsB.Range("D" & wsB.Rows.Count).End(xlUp).Row
     
        ' Si ClasseurB a des données, passer à la ligne suivante
        If nbLigB > 1 Then nbLigB = nbLigB + 1
     
        ' Parcourir les lignes dans ClasseurA
        For i = 1 To nbLigA
            ' Vérifier si l'identifiant client existe dans ClasseurB
            If IsError(Application.Match(wsA.Cells(i, 4), wsB.Range("D:D"), 0)) Then
                ' Copier toute la ligne à ClasseurB si l'identifiant client n'existe pas
                Set copyRange = wsA.Rows(i)
                copyRange.Copy Destination:=wsB.Rows(nbLigB)
                nbLigB = nbLigB + 1
            End If
        Next i
     
        ' Supprimer les lignes dans ClasseurB qui ne sont pas dans ClasseurA
        For j = nbLigB - 1 To 1 Step -1
            If IsError(Application.Match(wsB.Cells(j, 4), wsA.Range("D:D"), 0)) Then
                wsB.Rows(j).Delete
            End If
        Next j
     
        ' Enregistrer et fermer les classeurs
        If Not WorkbookIsOpen(ClasseurA) Then
            wbA.Close SaveChanges:=False
        End If
        If Not WorkbookIsOpen(ClasseurB) Then
            wbB.Close SaveChanges:=True
        End If
    End Sub
    Brillantissime Franc. J'ai un peu ajuster et ça fonctionne parfaitement.

    Je te souhaite une belle journée !

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Citation Envoyé par edgarrd Voir le message
    Brillantissime Franc. J'ai un peu ajuster et ça fonctionne parfaitement.

    Je te souhaite une belle journée !
    J'ai tenté d'optimiser en rafraichissant aussi les données existante en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        ' Parcourir les lignes dans ClasseurA
        For i = 1 To nbLigA
            ' --------------------------------------------------Vérifier si l'identifiant client existe dans ClasseurB et copie si non présente
            If IsError(Application.Match(wsA.Cells(i, 4), wsB.Range("D:D"), 0)) Then
                ' Copier toute la ligne à ClasseurB si l'identifiant client n'existe pas
                Set copyRange = wsA.Rows(i)
                copyRange.Copy Destination:=wsB.Rows(nbLigB)
                nbLigB = nbLigB + 1
                Else
                Set copyRange2 = wsA.Range("A" & i & ":S" & i)
                Set copyRange3 = wsA.Range("X" & i & ":AR" & i)
                copyRange2.Copy Destination:=wsB.Rows(nbLigB)
                copyRange3.Copy Destination:=wsB.Rows(nbLigB)
                nbLigB = nbLigB + 1
            End If
        Next i
    Ca fonctionne pas tellement faut dire, je vais continuer mes recherches

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Bon ben mon code ne marche pas...Un petit coup de pouce svp ?

  8. #8
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Dans ton code, copyRange2 et copyRange3 ont la même destination, donc le deuxième va écraser le premier. Modifie comme ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    copyRange2.Copy Destination:=wsB.Cells(nbLigB, "A")
    copyRange3.Copy Destination:=wsB.Cells(nbLigB, "X")

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Franc Voir le message
    Dans ton code, copyRange2 et copyRange3 ont la même destination, donc le deuxième va écraser le premier. Modifie comme ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    copyRange2.Copy Destination:=wsB.Cells(nbLigB, "A")
    copyRange3.Copy Destination:=wsB.Cells(nbLigB, "X")
    Merci pour ton retour Franc. je test et te reviens. En tout cas merci de ta disponibilité et de ton temps pour moi

  10. #10
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Citation Envoyé par edgarrd Voir le message
    Merci pour ton retour Franc. je test et te reviens. En tout cas merci de ta disponibilité et de ton temps pour moi
    Je n'arrive pas à comprendre pourquoi ca me recopie le tableau en dessous au lieu de rafraichir en lieu et place des zones ou les id clients sont les mêmes...

  11. #11
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Comme ça je vois pas. Eventuellement, fournis des classeurs test avec le résultat attendu et je vérifierai.

  12. #12
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Merci pour ton implication.

    Pour résumer disons que j'ai dans le fichier Pilote des managers:
    CLIENT - ADRESSE - VEHICULE
    123 - 1 rue des Pommes - Porsche
    456 - 1 rue des Poires - Twingo
    789 - 1 rue des Ceries - Maserati

    Le fichier d'un des commercial:
    CLIENT - ADRESSE - VEHICULE
    123 - 1 rue des Pommes - Porsche
    456 - 1 rue des Poires - Twingo


    Le premier point que tu as résolu était de rapatrier les clients manquants du fichier pilote manager au fichier du commercial
    Le second point était de supprimer une valeur du fichier commercial si, suite à une màj, un client quittait le fichier Pilote manager.

    Le troisième point que je tente de résoudre est de mettre à jour tous le fichier commercial a partir du pilote, par example si le client Pilote manager passe de :
    CLIENT - ADRESSE - VEHICULE
    123 - 1 rue des Pommes - Porsche
    456 - 1 rue des Poires - Twingo
    789 - 1 rue des Ceries - Maserati

    à
    CLIENT - ADRESSE - VEHICULE
    123 - 1 rue des Pommes - Ferrari
    456 - 1 rue des Poires - Twingo
    789 - 1 rue des Ceries - Maserati

    J'aimerais que ce soit aussi mis à jour dans le fichier commercial, qu'il y ai un changement ou pas. Que quoi qu'il se passe on récupère la data du fichier Pilote Manager et qu'on la mette dans le fichier commercial, sans changer l'emplacement des valeurs du fichiers commercial (car parfois ils font des tries).

    Tu vois ce que je veux dire ?

  13. #13
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Ce qu'il me faudrait c'est des classeurs test avec les macros que tu utilises pour voir ce qui cloche, j'ai pas le temps de me créer des classeurs test.

  14. #14
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Citation Envoyé par Franc Voir le message
    Ce qu'il me faudrait c'est des classeurs test avec les macros que tu utilises pour voir ce qui cloche, j'ai pas le temps de me créer des classeurs test.
    C'est good j'ai trouvé la solution avec un Else et des set Copyrange sur les ranges qui m'intéressaient

  15. #15
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 22
    Par défaut
    Quelqu'un saurait me dire pourquoi j'ai une erreur sur ce code svp:

    copyRange2.Copy Destination:=wsB.Range("A" & i & ":A" & i)

    Merci d'avance

Discussions similaires

  1. [Toutes versions] Copier lignes si elle existe pas VBA
    Par xaviou99 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/06/2018, 09h26
  2. [XL-2010] VBA EXCEL: copier/coller des lignes avec conditions
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/11/2015, 12h32
  3. VBA EXCEL - Copier des ligne vers un autre calseur.
    Par patine31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2007, 12h46
  4. [VBA-Excel] copier des lignes de données d'un fichier à un autre
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2006, 10h17
  5. [VBA EXCEL] Copier des lignes
    Par ben7777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/07/2006, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo