Première macro Excel
Fermé
skrolk
Messages postés
1
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
5 juin 2013
-
Modifié par skrolk le 5/06/2013 à 15:49
skrolk - 7 juin 2013 à 16:33
skrolk - 7 juin 2013 à 16:33
A voir également:
- Première macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
8 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
644
5 juin 2013 à 16:06
5 juin 2013 à 16:06
Bonjour,
Pour déposer un fichier , utiliser
https://www.cjoint.com/
Déposer le fichier et venir nous donner le lien de téléchargement dans un message ici.
Pour déposer un fichier , utiliser
https://www.cjoint.com/
Déposer le fichier et venir nous donner le lien de téléchargement dans un message ici.
Bonjour
voila un macro qui copy d'une feille a l'autre
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = Feuil1.Range("B" & Lig)
Range("B" & Lig).Value = Feuil1.Range("E" & Lig)
Range("C" & Lig).Value = Feuil1.Range("H" & Lig)
Next
End With
End Sub
A+
Maurice
voila un macro qui copy d'une feille a l'autre
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = Feuil1.Range("B" & Lig)
Range("B" & Lig).Value = Feuil1.Range("E" & Lig)
Range("C" & Lig).Value = Feuil1.Range("H" & Lig)
Next
End With
End Sub
A+
Maurice
Re
Rectification
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = .Range("B" & Lig)
Range("B" & Lig).Value = .Range("E" & Lig)
Range("C" & Lig).Value = .Range("H" & Lig)
Next
End With
End Sub
A+
MAurice
Rectification
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = .Range("B" & Lig)
Range("B" & Lig).Value = .Range("E" & Lig)
Range("C" & Lig).Value = .Range("H" & Lig)
Next
End With
End Sub
A+
MAurice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci, cela marche très bien!
Ce que je cherche à faire maintenant c'est une macro qui permette (à la suite de celle de Maurice) d'effectuer le traitement de donné sur les 50 lignes suivantes de la feuille1 (B, E et H53 à 103). Puisque le traitement de donnés ne peut s'effectuer que sur 50 lignes à la fois.
Pour cela il faut d'abord copie/coller le résultat obtenue dans les cellules D2:D52 de la feuille 2 dans les cellules A2:A52 de la feuille1.
Puis copie/coller les 50 cellules suivantes de la feuille1 qui écraseront les cellules A2:C52 de la feuille2.
Est ce possible?
Voici l'état de la macro à ce jour:
Sub Copiecolleforum()
Feuil2.Select
With Feuil1
For lig = 2 To 52
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Next
End With
Feuil1.Select
With Feuil2
For lig = 2 To 52
Range("A" & lig).Value = .Range("D" & lig)
Next
End With
End Sub
A+
Skrolk
Ce que je cherche à faire maintenant c'est une macro qui permette (à la suite de celle de Maurice) d'effectuer le traitement de donné sur les 50 lignes suivantes de la feuille1 (B, E et H53 à 103). Puisque le traitement de donnés ne peut s'effectuer que sur 50 lignes à la fois.
Pour cela il faut d'abord copie/coller le résultat obtenue dans les cellules D2:D52 de la feuille 2 dans les cellules A2:A52 de la feuille1.
Puis copie/coller les 50 cellules suivantes de la feuille1 qui écraseront les cellules A2:C52 de la feuille2.
Est ce possible?
Voici l'état de la macro à ce jour:
Sub Copiecolleforum()
Feuil2.Select
With Feuil1
For lig = 2 To 52
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Next
End With
Feuil1.Select
With Feuil2
For lig = 2 To 52
Range("A" & lig).Value = .Range("D" & lig)
Next
End With
End Sub
A+
Skrolk
Re
dur le vba voila avec le compteur de ligne
Sub Copiecolle()
Feuil2.Select
Application.ScreenUpdating = False
Rows("3:10000").Delete
With Feuil1
Nlig = .Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Solut = Range("A" & lig) & Range("B" & lig) & Range("C" & lig)
Range("D" & lig).Value = Solut
.Range("A" & lig).Value = Solut
Next
End With
Application.ScreenUpdating = True
End Sub
A+
Maurice
dur le vba voila avec le compteur de ligne
Sub Copiecolle()
Feuil2.Select
Application.ScreenUpdating = False
Rows("3:10000").Delete
With Feuil1
Nlig = .Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Solut = Range("A" & lig) & Range("B" & lig) & Range("C" & lig)
Range("D" & lig).Value = Solut
.Range("A" & lig).Value = Solut
Next
End With
Application.ScreenUpdating = True
End Sub
A+
Maurice
Re
Le faire directement ses plus facile
a toi de choisir
Sub Test()
Feuil1.Select
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Solut = Range("B" & lig) & Range("E" & lig) & Range("H" & lig)
Range("A" & lig).Value = Solut
Next
End Sub
A+
Maurice
Le faire directement ses plus facile
a toi de choisir
Sub Test()
Feuil1.Select
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Solut = Range("B" & lig) & Range("E" & lig) & Range("H" & lig)
Range("A" & lig).Value = Solut
Next
End Sub
A+
Maurice
Aie, en fait la formule "=concatener" n'est ici que pour servir d'exemple de traitement de donné. Mon fichier original (que je ne peux malheureusement pas joindre) effectue une suite de "BDlire" qui permet d'attribuer une catégorie à l'information contenue dans la base de donné.
Seulement cette attribution n'est réalisable que pour 50 lignes. Je cherche donc une macro qui permette d'effectuer le copie/colle par "paquet" de 50...
Mais je ne comprends pas cette ligne dans ta macro:
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Peut-être que la solution est sous mes yeux et que je ne la trouve pas ^^
Merci en tout cas de te donner tant de mal pour m'initier à VBA...
Seulement cette attribution n'est réalisable que pour 50 lignes. Je cherche donc une macro qui permette d'effectuer le copie/colle par "paquet" de 50...
Mais je ne comprends pas cette ligne dans ta macro:
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Peut-être que la solution est sous mes yeux et que je ne la trouve pas ^^
Merci en tout cas de te donner tant de mal pour m'initier à VBA...