Aide pour modifier une petite macro
Fermé
Camille
-
9 juil. 2019 à 14:09
Fulsten Messages postés 214 Date d'inscription samedi 19 mars 2011 Statut Membre Dernière intervention 31 juillet 2020 - 9 juil. 2019 à 15:11
Fulsten Messages postés 214 Date d'inscription samedi 19 mars 2011 Statut Membre Dernière intervention 31 juillet 2020 - 9 juil. 2019 à 15:11
A voir également:
- Aide pour modifier une petite macro
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Logiciel gratuit pour modifier pdf - Guide
2 réponses
Fulsten
Messages postés
214
Date d'inscription
samedi 19 mars 2011
Statut
Membre
Dernière intervention
31 juillet 2020
55
9 juil. 2019 à 14:47
9 juil. 2019 à 14:47
Bonjour,
Voici le suite de tests. Ce n'est pas forcément optimisé, mais ça fonctionne. Vous pouvez remplacer la fonction copie() par celle ci :
Voici le suite de tests. Ce n'est pas forcément optimisé, mais ça fonctionne. Vous pouvez remplacer la fonction copie() par celle ci :
Sub Copie()
Dim C As Range, Col As Integer
Range(Cells(3, "AA"), Cells(Rows.Count, "AA").End(xlUp)).ClearContents 'pour supprimer a financer avant
'trouve la colonne à utiliser
'Col = Cells(3, Columns.Count).End(xlToLeft).Column + 1
Col = 0
If IsEmpty(Cells(3, 11)) Then
Col = 11
ElseIf IsEmpty(Cells(3, 12)) Then
Col = 12
ElseIf IsEmpty(Cells(3, 13)) Then
Col = 13
ElseIf IsEmpty(Cells(3, 14)) Then
Col = 14
ElseIf IsEmpty(Cells(3, 15)) Then
Col = 15
ElseIf IsEmpty(Cells(3, 16)) Then
Col = 16
End If
If Col > 0 Then
'"8" est le numéro de la colonne H, j'aurais pu mettre "H"
For Each C In Range("H3", Cells(Rows.Count, "H").End(xlUp)) 'Sélectionne la plage O3 à la dernière cellule remplie de la colonne O
If C.Offset(, -3) = 0 Then
'"-3" est le décalage vers la gauche entre les colonnes O et L
Cells(C.Row, Col).Value = C.Value 'recopie valeurs
ElseIf C.Offset(, -3) = 1 Then
C.Copy Cells(C.Row, Col) 'collage standard
End If
Next C
End If
End Sub
danielc0
Messages postés
1583
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
4 mars 2025
183
9 juil. 2019 à 15:04
9 juil. 2019 à 15:04
Bonjour,
Essaie aussi :
Daniel
Essaie aussi :
Sub Copie() Dim C As Range, Col As Integer Range(Cells(3, "AA"), Cells(Rows.Count, "AA").End(xlUp)).ClearContents 'pour supprimer a financer avant 'trouve la colonne à utiliser Col = Cells(3, 10).End(xlToRight).Column + 1 If Col = Columns.Count + 1 Then Col = 11 '"8" est le numéro de la colonne H, j'aurais pu mettre "H" For Each C In Range("H3", Cells(Rows.Count, "H").End(xlUp)) 'Sélectionne la plage O3 à la dernière cellule remplie de la colonne O If C.Offset(, -3) = 0 Then '"-3" est le décalage vers la gauche entre les colonnes O et L Cells(C.Row, Col).Value = C.Value 'recopie valeurs ElseIf C.Offset(, -3) = 1 Then C.Copy Cells(C.Row, Col) 'collage standard End If Next C End Sub
Daniel
Fulsten
Messages postés
214
Date d'inscription
samedi 19 mars 2011
Statut
Membre
Dernière intervention
31 juillet 2020
55
Modifié le 9 juil. 2019 à 15:12
Modifié le 9 juil. 2019 à 15:12
Si simple... Je ne connais pas assez ces fonctions !
9 juil. 2019 à 14:54
Faut juste que je rajoute les 10 colonnes cachées et c'est bon ^^
Modifié le 9 juil. 2019 à 14:56