VBA excel, coller cell sans écraser autre ce
Résolu
A voir également:
- VBA excel, coller cell sans écraser autre ce
- Liste déroulante excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si et excel - Guide
5 réponses
up, personne ne connait la réponse ?
Bonsoir,
Tu peux utiliser une des deux lignes suivantes dans ta macro :
ActiveCell.End(xlDown).Offset(1, 0).Select (après avoir sélectionné une cellule remplie dans la colonne concernée)
ou bien :
Range("c1").End(xlDown).Offset(1, 0).Select (remplace "c1" par la colonne adéquate)
Cordialement.
Papou
Tu peux utiliser une des deux lignes suivantes dans ta macro :
ActiveCell.End(xlDown).Offset(1, 0).Select (après avoir sélectionné une cellule remplie dans la colonne concernée)
ou bien :
Range("c1").End(xlDown).Offset(1, 0).Select (remplace "c1" par la colonne adéquate)
Cordialement.
Papou
merci papou pour ta réponse,
mais cela ne fonctionne pas.
J'ai donc tenté ceci :
Sheets("type de bétons-mortiers").Range("e17").Copy
Sheets("devis").Select
Range("f16").Select
ActiveCell.End(xlDown).Offset(1, 0).Select => erreur sur cette ligne
Selection.Copy
j'ai également essayé ceci,
Sheets("type de bétons-mortiers").Range("e17").Copy
Sheets("devis").Select
Range("f16").End(xlDown).Offset(1, 0).Select => erreur sur cette ligne
Selection.Copy
Sans succès. pour rappel, je n'ai pas de tableau prédéfini, ce sont les diverses selections qui le formeront.
que faire ?
mais cela ne fonctionne pas.
J'ai donc tenté ceci :
Sheets("type de bétons-mortiers").Range("e17").Copy
Sheets("devis").Select
Range("f16").Select
ActiveCell.End(xlDown).Offset(1, 0).Select => erreur sur cette ligne
Selection.Copy
j'ai également essayé ceci,
Sheets("type de bétons-mortiers").Range("e17").Copy
Sheets("devis").Select
Range("f16").End(xlDown).Offset(1, 0).Select => erreur sur cette ligne
Selection.Copy
Sans succès. pour rappel, je n'ai pas de tableau prédéfini, ce sont les diverses selections qui le formeront.
que faire ?
Bonsoir Platinium,
Est-ce que la cellule 'f16' contient quelquechose ?
Si elle est vide, cela provoque effectivement une erreur.
Le mieux est de définir la 1ère cellule non vide de la colonne 'f' pour que cela fonctionne sans problème.
J'ai testé, ça marche.
Tiens-moi au courant.
Cordialement.
Papou
Est-ce que la cellule 'f16' contient quelquechose ?
Si elle est vide, cela provoque effectivement une erreur.
Le mieux est de définir la 1ère cellule non vide de la colonne 'f' pour que cela fonctionne sans problème.
J'ai testé, ça marche.
Tiens-moi au courant.
Cordialement.
Papou
oui, la cellule f16 (de la feuille finale "devis")contient l'intitulé "prix vente ttc".
la cellule e17 de la feuille initiale "type de bétons-mortiers" est une somme.
il y a toujours un bog.
la cellule e17 de la feuille initiale "type de bétons-mortiers" est une somme.
il y a toujours un bog.
Merci papou de t'interesser à mon blocage,
la commande activate ne semble pas modifier grand chose,
sur
Sheets("type de bétons-mortiers").Range("e17").Copy
Sheets("devis").Activate
Sheets("devis").Range("f16").End(xlDown).Offset(1, 0).Select =>
ActiveCell.Paste
toujours la même erreur : "erreur d'execution 1004, erreur définie par l'application ou par l'objet"
Je ne sais pas quoi faire, j'ai regardé d'autres codes avec do...loop mais sans succès. je suis un tout nouveau débutant !
la commande activate ne semble pas modifier grand chose,
sur
Sheets("type de bétons-mortiers").Range("e17").Copy
Sheets("devis").Activate
Sheets("devis").Range("f16").End(xlDown).Offset(1, 0).Select =>
ActiveCell.Paste
toujours la même erreur : "erreur d'execution 1004, erreur définie par l'application ou par l'objet"
Je ne sais pas quoi faire, j'ai regardé d'autres codes avec do...loop mais sans succès. je suis un tout nouveau débutant !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour Nouskiller,
Voici la solution, que j'avais eu grâce à papou :
pour ma part, voici comment ça fonctionne :
dans le code concernant mon bouton, il y a :
lg = Sheets("devis").Range("a15").End(xlDown).Row + 1
intersectransport lg, "b10", "b61", "b62", "a64", "b10", "e10", "f5", "b63", "g7"
'lg signifie que la ligne sera intégré après la dernière ligne occupée (End(xlDown).Row + 1), puis que chaque cellule sera intégré d'un cran vers la droite. Pour ma part dans mon devis, j'ai plusieurs infos : prix d'achat, px de vente, désignation, ....
'intersectectransport est le nom de la fonction créée dans un module, qui défini l'emplacement des cellules b10, b61 ...
le module se présente comme ceci :
Sub intersectransport(lg As Integer, cell1 As String, Cell2 As String, Cell3 As String, Cell4 As String, Cell5 As String, Cell6 As String, Cell7 As String, Cell8 As String, Cell9 As String)
Sheets("devis").Cells(lg, 1) = Sheets("tarif livraison").Range(cell1) * 15
Sheets("devis").Cells(lg, 2) = Sheets("type de bétons-mortiers").Range(Cell2)
Sheets("devis").Cells(lg, 3) = Sheets("type de bétons-mortiers").Range(Cell3)
Sheets("devis").Cells(lg, 4) = Sheets("type de bétons-mortiers").Range(Cell4)
Sheets("devis").Cells(lg, 5) = Sheets("tarif livraison").Range(Cell5) * Sheets("type de bétons-mortiers").Range("b59").Value
Sheets("devis").Cells(lg, 6) = Sheets("tarif livraison").Range(Cell6)
'Sheets("devis").Cells(lg, 7) = Sheets("choixcamion").Range(Cell7)
Sheets("devis").Cells(lg, 8) = Sheets("type de bétons-mortiers").Range(Cell8)
Sheets("devis").Cells(lg, 9) = Sheets("devis").Cells(lg, 6) * Sheets("devis").Cells(lg, 7) 'pour calcul du total
End Sub
pour que cela fonctionne, il te faudra peut-être placer dans les cellules au-dessus du titre de chaque colonne des espaces (donc dans la ligne 15). J'espère que cela pourra t'être utile !
Voici la solution, que j'avais eu grâce à papou :
pour ma part, voici comment ça fonctionne :
dans le code concernant mon bouton, il y a :
lg = Sheets("devis").Range("a15").End(xlDown).Row + 1
intersectransport lg, "b10", "b61", "b62", "a64", "b10", "e10", "f5", "b63", "g7"
'lg signifie que la ligne sera intégré après la dernière ligne occupée (End(xlDown).Row + 1), puis que chaque cellule sera intégré d'un cran vers la droite. Pour ma part dans mon devis, j'ai plusieurs infos : prix d'achat, px de vente, désignation, ....
'intersectectransport est le nom de la fonction créée dans un module, qui défini l'emplacement des cellules b10, b61 ...
le module se présente comme ceci :
Sub intersectransport(lg As Integer, cell1 As String, Cell2 As String, Cell3 As String, Cell4 As String, Cell5 As String, Cell6 As String, Cell7 As String, Cell8 As String, Cell9 As String)
Sheets("devis").Cells(lg, 1) = Sheets("tarif livraison").Range(cell1) * 15
Sheets("devis").Cells(lg, 2) = Sheets("type de bétons-mortiers").Range(Cell2)
Sheets("devis").Cells(lg, 3) = Sheets("type de bétons-mortiers").Range(Cell3)
Sheets("devis").Cells(lg, 4) = Sheets("type de bétons-mortiers").Range(Cell4)
Sheets("devis").Cells(lg, 5) = Sheets("tarif livraison").Range(Cell5) * Sheets("type de bétons-mortiers").Range("b59").Value
Sheets("devis").Cells(lg, 6) = Sheets("tarif livraison").Range(Cell6)
'Sheets("devis").Cells(lg, 7) = Sheets("choixcamion").Range(Cell7)
Sheets("devis").Cells(lg, 8) = Sheets("type de bétons-mortiers").Range(Cell8)
Sheets("devis").Cells(lg, 9) = Sheets("devis").Cells(lg, 6) * Sheets("devis").Cells(lg, 7) 'pour calcul du total
End Sub
pour que cela fonctionne, il te faudra peut-être placer dans les cellules au-dessus du titre de chaque colonne des espaces (donc dans la ligne 15). J'espère que cela pourra t'être utile !