Condition : Copier une cellule [Résolu/Fermé]

Signaler
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
Bonjour,

Ci-joint mon fichier anonymé : https://www.cjoint.com/c/EFzoIkIeUnf

En fait, j'aurais besoin d'avoir le code tiers (dans la colonne A et H, exemple AAAAAAAA) dans la colonne D sur les lignes qui ne sont pas en gras. Par contre, il faut que cela s'arrête dès qu'on change de tiers. En gros, chaque ligne pas en gras doit avoir son code tiers dans la colonne D de la ligne. Je n'arrive pas à trouver de solution.

Merci d'avance pour votre aide.

Cordialement.

6 réponses

Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
153
Bonjour Kuartz, bonjour le forum,

Essaie comme ça :
Sub Macro1()
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A)
For I = 1 To DL 'boucle sur toutes les lignes I
    'si la cellule colonne 1 de la ligne I n'est pas en gras, coupe la cellule en colonne 6 et la colle en colonne 4
    If Cells(I, 1).Font.Bold = False Then Cells(I, 6).Cut Cells(I, 4)
Next I 'prochaine ligne de la boucle
End Sub

Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
50
Merci beaucoup.

Cependant, en fait, la colonne F doit rester telle quelle. Elle ne peut pas être coupée. Il faudrait copier les choses en gras de la colonne A sur les colonnes D des lignes qui ne sont pas en gras.

Je vais te remettre un autre fichier test un peu plus explicite, avec ce qu'il faudrait qu'il apparaisse en exemple sur les 20 premières lignes.

Merci de ta patience.

https://www.cjoint.com/c/EFzpy0hgrMf

Cordialement.
Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
153
Bonjour Kuartz, bonjour le forum,

Essaie comme ça :
Sub Macro1()
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim V As String

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A)
For I = 1 To DL 'boucle sur toutes les lignes I
    If Cells(I, 1) <> "" Then 'condition 1 : si la cellule en colonne 1 n'est pas vide
        If Cells(I, 1).Font.Bold = True Then 'condition 2 : si la police de la cellule en colonne 1 est "Gras"
            V = Cells(I, 1).Value 'récupere la valeur de la cellule dans la variable V
        Else 'sinon
            Cells(I, 4).Value = V 'renvoie la valeur de la varialbe V dans la cellule colonne 4
            Cells(I, 4).Font.Bold = True 'applique la police "Gras"
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next I 'prochaine ligne de la boucle
End Sub

Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
50
Bonjour tout le monde.

Ce code ne marche pas je comprend pas.

Sub Macro1()
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A)
For I = 1 To DL 'boucle sur toutes les lignes I
    'si la cellule colonne 1 de la ligne I n'est pas en gras, copie la cellule en colonne 1 et la colle en colonne 4
    If Cells(I, 1).Font.Bold = True Then Cells(I, 1).Copy Cells(I + 1, 4)
    If Cells(I, 1).Font.Bold = False And Cells(I, 1).Value <> "" And Cells(I + 1, 1).Value <> "" And Cells(I + 1, 1).Font.Bold = False Then Cells(I - 1, 4).Copy Cells(I, 4)
Next I 'prochaine ligne de la boucle
End Sub
Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
153
Bonjour Kuartz, bonjour le forum,

Le dernier que je t'ai proposé ne convient pas ?...
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
50
Si, parfaitement bien.

Je suis désolé j'ai envoyé ma réponse sans lire la tienne... Je suis fatigué.

Merci encore. Tu m'as énormément aidé pour tout.

Cordialement.