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 :

Boucle For Each Next sur plusieurs feuilles [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Points : 23
    Points
    23
    Par défaut Boucle For Each Next sur plusieurs feuilles
    Bonjour,

    Je souhaite faire une boucle pour coller un sélection sur plusieurs feuilles :

    Feuilles :
    TEST
    SEM 1
    SEM 2
    SEM 3
    SEM 4
    SEM 5
    RECAP

    A savoir que les feuilles SEM 1, SEM 2 ... peuvent aussi s'appeler selon le mois :
    SEM 5
    SEM 6
    SEM 7
    SEM 8
    SEM 9

    Donc je copie une sélection de la SEM 1 qui est la feuille active et je souhaite la copier dans les autres semaines (soit tous les onglet sauf ONGLET TEST ET ONGLET RECAP)

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     ActiveCell.Copy
     
    For Each ws In Worksheets
     
    If ws.Name > "SEM 1" Or ws.Name < "SEM 52" Then
    ws.Range("a999").End(xlUp).Offset(5, 0).PasteSpecial xlPasteAll
     
    End If
     
    Next ws

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    ws.Name renvoie le nom de la feuille, donc une chaine de caractères.
    Tu ne peux pas comparer des chaines de caractères avec < ou >. Que veut dire chaine1 > chaine2?
    tous les onglet sauf ONGLET TEST ET ONGLET RECAP
    Alors utilise cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ws.Name <> "TEST" And ws.Name <> "RECAP" Then
     ...
    End If

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour riaolle

    Bien sur qu oui : on peut comparer deux chaînes par < ou >.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox "chaine 2" > "chaine 1"
    retournera par exemple true (ou vrai)
    il serait alors par contre prudent de les nommer "chaine 01" et ""chaine 02" (pour éviter d'arriver à "chaine 12" qui serait < "chaine 2"

    Ceci étant dit : la solution que tu proposes est plus adroite dans le cas présenté.
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Bonjour,
    Citation Envoyé par riaolle Voir le message
    Tu ne peux pas comparer des chaines de caractères avec < ou >. Que veut dire chaine1 > chaine2?
    Si on peut, il compare alors caractère par caractère la valeur du code ASCII

    edit: trop lent ...
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Points : 23
    Points
    23
    Par défaut
    J'ai donc modifié : (l'onglet test s'appelle maintenant HORAIRE DE BASE)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     ActiveCell.Copy
     
    For Each ws In Worksheets
     
    If ws.Name <> "HORAIRE DE BASE" Or ws.Name <> "RECAP" Then
     
    ws.Range("a999").End(xlUp).Offset(5, 0).PasteSpecial xlPasteAll
     
    End If
     
    Next ws
    Mais la boucle ne se fait pas

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Citation Envoyé par NadStin Voir le message
    Mais la boucle ne se fait pas
    Essaye le code ci dessous.
    Puis va voir le résultat du debug.print (ctrl+G) pour voir si la boucle se fait bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    dim ws as worksheet
     ActiveCell.Copy
     
    For Each ws In thisworkbook.Worksheets
    debug.print ws.name
    If ws.Name <> "HORAIRE DE BASE" Or ws.Name <> "RECAP" Then
     
    ws.Range("a999").End(xlUp).Offset(5, 0).PasteSpecial xlPasteAll
     
    End If
     
    Next ws
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  7. #7
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    OK, désolée pour mon erreur... j'ai appris quelque chose
    Attention, tu mets Or, il faut mettre And, car pour l'onglet "RECAP", par exemple, le nom est bien différent de HORAIRE DE BASE, donc la contidion est vérifiée.
    Mais la boucle ne se fait pas
    Pourrais-tu être un peu plus précis? Le code tourne, mais rien ne se passe?
    Peux-tu nous donner ce qu'il y a autour du bout de code que tu nous donnes pour voir s'il y a pas une erreur en amont.

  8. #8
    Membre à l'essai
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Points : 23
    Points
    23
    Par défaut
    ok, j'ai modifié "or" en "and" mais toujours rien,
    le reste de la macro tourne et tout se passe comme prévu mais pour ce bout de code, rien ne se passe...

    voici le code en entier

    et ce que cela doit faire :
    lors d'un double clic, il a a un tableau qui se colle dans la feuille active et ce dernier est complété avec les éléments des input box, ensuite (normalement) ce même tableau doit se coller sur les autres onglet (d'ou la boucle...)

    merci...

    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
    60
    61
    62
     
     
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     
    Dim ws As Worksheet
     
    If MsgBox("Souhaitez vous ajouter une personne ?", vbYesNo) = vbYes Then
     
      Range("a999").End(xlUp).Offset(5, 0).Select
     
      Sheets("MODELES").Range("a16:aa25").Copy
     
      ActiveCell.PasteSpecial xlPasteAll
     
      nom = InputBox("Merci d'indiquer le nom et prénom du collaborateur : ", "Non - Prénom")
      ActiveCell.Offset(0, 2).Value = nom
     
      poste = InputBox("Merci d'indiquer le poste du collaborateur : " & Chr(10) & Chr(10) & "RM" & Chr(10) & "1er ADJOINT" & Chr(10) & "2ème ADJOINT" & Chr(10) & "VENDEUR(SE)" & Chr(10) & "CHEF CAISSE" & Chr(10) & "STAGIAIRE" & Chr(10) & "APPRENTI", "poste")
      ActiveCell.Offset(4, 2).Value = poste
     
      ray = InputBox("Merci d'indiquer le rayon du collaborateur : ", "rayon")
      ActiveCell.Offset(5, 2).Value = ray
     
      hor = InputBox("Merci d'indiquer le nombre d'heure hebdomadaire du collaborateur : " & Chr(10) & Chr(10) & "Format : HH:MM", "Nb d'heure")
      ActiveCell.Offset(7, 2).Value = hor
     
      anc = InputBox("Merci d'indiquer la date d'ancienneté du collaborateur : " & Chr(10) & Chr(10) & "Format : JJ/MM/AAAA", "Ancienneté")
      Sheets("ANCIENNETE").Activate
      Range("A1").End(xlDown).Offset(1, 0).Value = nom
      Range("B1").End(xlDown).Offset(1, 0).Value = anc
     
      ActiveCell.Copy
     
    For Each ws In Worksheets
     
    If ws.Name <> "HORAIRE DE BASE" And ws.Name <> "RECAP" Then
     
    ws.Range("a999").End(xlUp).Offset(5, 0).PasteSpecial xlPasteAll
     
    End If
     
    Next ws
     
     
     If MsgBox("Souhaitez vous ajouter ce collaborateur à horraire de base ?", vbYesNo) = vbYes Then
     
      Sheets("MODELES").Range("a32:i36").Copy
      Sheets("HORAIRE DE BASE").Activate
      Range("a104857").End(xlUp).Select
      ActiveCell.Offset(6, 0).PasteSpecial xlPasteAll
     
      ActiveCell.Value = nom
     
      MsgBox ("Merci de compléter l'horaire de base du collaborateur")
     
     
    End If
    End If
     
     
     
    End Sub

  9. #9
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Je ne vois pas vraiment d'erreur sur le bout de code, néanmoins quelques commentaires :
    • Y a-t-il une raison spéciale pour laquelle tu remontes les cellules à partir de A999?
      Si non, utilise plutôt :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ws.Cells(Rows.Count, 1).End(xlUp)
      Comme ça tout se passera bien même si tu dépasses A999.
    • Evite d'utiliser Select, Activate, ActiveCell etc ... Souvent cela ne fait qu'entraîner des problèmes difficiles à gérer. Précise sur quelles cellules ou feuilles tu travailles. Soit à travers une variable (c'est ce qui me paraît le plus judicieux, ici) ou à l'aide d'un bloc With.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      Dim myCel As Range
      myCel = Range("a999").End(xlUp).Offset(5, 0)
         'puis dans la suite du code :
      myCel.PasteSpecial xlPasteAll
         '...
      myCel.Offset(0, 2).Value = nom
         '...


    Essaie déjà avec ça. Je ne garantie pas que le code marchera, mais on avance un peu

  10. #10
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Citation Envoyé par NadStin Voir le message
    ensuite (normalement) ce même tableau doit se coller sur les autres onglet (d'ou la boucle...)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    ActiveCell.Copy
      
    For Each ws In Worksheets
    
    If ws.Name <> "HORAIRE DE BASE" And ws.Name <> "RECAP" Then
    
    ws.Range("a999").End(xlUp).Offset(5, 0).PasteSpecial xlPasteAll
    
    End If
    
    Next ws
    Tu veux copier un tableau ou une cellule?
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Points : 23
    Points
    23
    Par défaut
    merci pour ses infos, mais cela ne fonctionne pas...

    voici le msg d'erreur :

    Nom : Capture.PNG
Affichages : 1488
Taille : 22,0 Ko

    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
    60
    61
    62
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     
    Dim myCel As Range
     
    Dim ws As Worksheet
     
    If MsgBox("Souhaitez vous ajouter une personne ?", vbYesNo) = vbYes Then
     
      Cells(Rows.Count, 1).End(xlUp).Offset(5, 0).Select
     
      Sheets("MODELES").Range("a16:aa25").Copy
     
      myCel.PasteSpecial xlPasteAll
     
      nom = InputBox("Merci d'indiquer le nom et prénom du collaborateur : ", "Non - Prénom")
      myCel.Offset(0, 2).Value = nom
     
      poste = InputBox("Merci d'indiquer le poste du collaborateur : " & Chr(10) & Chr(10) & "RM" & Chr(10) & "1er ADJOINT" & Chr(10) & "2ème ADJOINT" & Chr(10) & "VENDEUR(SE)" & Chr(10) & "CHEF CAISSE" & Chr(10) & "STAGIAIRE" & Chr(10) & "APPRENTI", "poste")
      myCel.Offset(4, 2).Value = poste
     
      ray = InputBox("Merci d'indiquer le rayon du collaborateur : ", "rayon")
      myCel.Offset(5, 2).Value = ray
     
      hor = InputBox("Merci d'indiquer le nombre d'heure hebdomadaire du collaborateur : " & Chr(10) & Chr(10) & "Format : HH:MM", "Nb d'heure")
      myCel.Offset(7, 2).Value = hor
     
      anc = InputBox("Merci d'indiquer la date d'ancienneté du collaborateur : " & Chr(10) & Chr(10) & "Format : JJ/MM/AAAA", "Ancienneté")
      Sheets("ANCIENNETE").Activate
      Range("A1").End(xlDown).Offset(1, 0).Value = nom
      Range("B1").End(xlDown).Offset(1, 0).Value = anc
     
      myCel.Copy
     
    For Each ws In Worksheets
     
    If ws.Name <> "HORAIRE DE BASE" And ws.Name <> "RECAP" Then
     
    ws.Cells(Rows.Count, 1).End(xlUp).Offset(5, 0).PasteSpecial xlPasteAll
     
    End If
     
    Next ws
     
     
     If MsgBox("Souhaitez vous ajouter ce collaborateur à horraire de base ?", vbYesNo) = vbYes Then
     
      Sheets("MODELES").Range("a32:i36").Copy
      Sheets("HORAIRE DE BASE").Activate
      Range("a104857").End(xlUp).Select
      myCel.Offset(6, 0).PasteSpecial xlPasteAll
     
      myCel.Value = nom
     
      MsgBox ("Merci de compléter l'horaire de base du collaborateur")
     
     
    End If
    End If
     
     
     
    End Sub
    Citation Envoyé par halaster08 Voir le message
    Tu veux copier un tableau ou une cellule?
    Un tableau, donc effectivement ca va pas ...

  12. #12
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Attention, tu ne définis pas ce que vaut la variable myCel avant de l'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim myCel As Range 
     myCel = Cells(Rows.Count, 1).End(xlUp).Offset(5, 0)
    Puis tu peux l'utiliser. Pas besoin du Select.

    Si tu veux copier un tableau, c'est une plage de cellules qu'il faudra copier. Comment est définie ton tableau? Est-ce qu'il a un certain nombre de lignes, de colonnes et un repère d'une cellule? Est-ce qu'il a une position précise dans la feuille?

  13. #13
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,

    Ton tableau est un vrai tableau Excel fait à partir de l'onglet "Tableaux" ??

    Si c'est le cas :

    - y a-t-il qu'un seul tableau sur la feuille ?

    - que veux tu copier ?
    • tout le tableau avec les en-têtes ??
    • ou seulement les données du tableaux ??
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour !

    Citation Envoyé par NadStin Voir le message
    Je souhaite faire une boucle pour coller un sélection sur plusieurs feuilles
    Alors voir déjà du côté de la méthode FillAcrossSheets et ce, sans boucle !

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  15. #15
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Alors voir déjà du côté de la méthode FillAcrossSheets et ce, sans boucle !
    +1, je ne connaissait pas, Merci beaucoup.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  16. #16
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Slt Marc ,

    , je ne me rappelle avoir été dans ce besoin "FillAcrossSheets", mais il est bon de le remonter à la surface, car je ne connaissais pas non plus.
    Ça m'évitera de passer à coté la prochaine fois dans le cas où j'en aurai besoin …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  17. #17
    Membre à l'essai
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Ok, donc je définie ma variable et j'essaie avec FillAcrossSheets

    Et pour te répondre Ryu, c'est le tableau avec les entêtes que je veux veux copier pas juste les données.

    Bon...

    Il y a quoi qui cloche dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim myCel As Range
    myCel = Cells(Row.Count, 1).End(xlUp).Offset(5, 0).Resize(10, 28)

  18. #18
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 660
    Points : 5 783
    Points
    5 783
    Par défaut
    Il manque un S, a rowS.count
    et un Set en début de ligne.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  19. #19
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une autre solution si tu souhaites utiliser à la fois les étiquettes de colonnes (titres) et les données, c'est l'utilisation de la propriété CurrentRegion
    Pour l'exemple, la table des données commence en cellule A1 de la feuille nommée Feuil1 du classeur où se trouve le code VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim rng As Range
    Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A1").CurrentRegion
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  20. #20
    Membre à l'essai
    Femme Profil pro
    Gestionnaire de paies
    Inscrit en
    Octobre 2016
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Gestionnaire de paies
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2016
    Messages : 77
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Une autre solution si tu souhaites utiliser à la fois les étiquettes de colonnes (titres) et les données, c'est l'utilisation de la propriété CurrentRegion
    cela ne peut pas fonctionner car il y a des colonnes vides ...

    merci HALASTER !

    Bon ça c'est bon, encore un pb sur la suivante ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ws As Worksheet
     Set ws = Worksheet.Name <> "HORAIRE DE BASE" And Worksheet.Name <> "RECAP"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] Boucles For Each Next: problème de défilement des feuilles avec lenteur d'exécution
    Par camelia.w dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/12/2011, 20h08
  2. [XL-2003] boucle For each Next
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/11/2009, 16h41
  3. boucle for each next : sauter une valeur
    Par scavenger dans le forum VBScript
    Réponses: 1
    Dernier message: 18/02/2009, 10h15
  4. Boucle For Each Next non entrée
    Par Kareg dans le forum VBA Access
    Réponses: 9
    Dernier message: 21/05/2008, 14h35
  5. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47

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