Copie texte à partir liste déroulante
Résolu
BABAR07
-
BABAR07 -
BABAR07 -
Bonjour,
je fais encore appel à vous, j'ai une feuille SAISI ARTICLE avec une zone de liste déroulante (contrôle de formulaire), les cellules de A4:D4 sont fusionnées avec dedans la formule =INDEX..., E4 est vide, en F4 la formule =RECHERCHEV...., EN G4 =RECHERCHEV..... , j'ai crée une macro avec un bouton mais cette macro recopie les formules au lieu du texte, comment modifier cette macro
je posséde excel 2007
Sub COPIERCOLLERARTICLE()
Range("A4:G4").Select
Selection.Copy
Sheets("DEVIS-FACTURE").Select
Dim Ligne As Long
Ligne = (Range("A1").End(xlDown).Row + 1)
Range("A" & Ligne).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("SAISI ARTICLE").Select
Range("A1").Select
End Sub
Merci d'avance à tous
je fais encore appel à vous, j'ai une feuille SAISI ARTICLE avec une zone de liste déroulante (contrôle de formulaire), les cellules de A4:D4 sont fusionnées avec dedans la formule =INDEX..., E4 est vide, en F4 la formule =RECHERCHEV...., EN G4 =RECHERCHEV..... , j'ai crée une macro avec un bouton mais cette macro recopie les formules au lieu du texte, comment modifier cette macro
je posséde excel 2007
Sub COPIERCOLLERARTICLE()
Range("A4:G4").Select
Selection.Copy
Sheets("DEVIS-FACTURE").Select
Dim Ligne As Long
Ligne = (Range("A1").End(xlDown).Row + 1)
Range("A" & Ligne).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("SAISI ARTICLE").Select
Range("A1").Select
End Sub
Merci d'avance à tous
2 réponses
-
Bonjour,
J'aurais écris ceci :Sub COPIERCOLLERARTICLE() Dim rng As Range Set rng = Sheets("DEVIS-FACTURE").Columns(1) _ .Find("*", , , , , xlPrevious).Offset(1) Sheets("SAISI ARTICLE").Range("A4:G4").Copy rng.PasteSpecial Paste:=xlPasteFormats rng.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ActiveCell.Select End Sub
Note :rng.PasteSpecial Paste:=xlPasteFormats
n'est pas forcement utile.
Cordialement
Patrice-
PS : il faut que la colonne A de Devis-Facture ne soit pas vide (un titre suffit)
Si la colonne A peut être vierge, remplacer :Set rng = Sheets("DEVIS-FACTURE").Columns(1) _ .Find("*", , , , , xlPrevious).Offset(1)Par :
Set rng = Sheets("DEVIS-FACTURE").Columns(1) _ .Find("*", , , , , xlPrevious) If rng Is Nothing Then Set rng = Sheets("DEVIS-FACTURE").Cells(1, 1) Else Set rng = rng.Offset(1) End If -
-
-
-
-
Bonjour,
Le problème vient de la fusion des cellules.
En règle générale, dans Excel il faut à tout prix éviter de fusionner des cellules pour limiter les problèmes.
Dans ton cas, cette fusion est totalement inutile, donc :
- Supprime la fusion des cellules A4:D4 de la feuille SAISI ARTICLE (clic droit / format de cellule / alignement / décocher fusion des cellules).
- supprime la fusion des cellules correspondantes dans DEVIS-FACTURE (A18:D18, A19:D19, ... )
Si tu tiens absolument (mais vraiment si tu y tiens absolument !), il est possible d'écrire une macro qui prendra en compte le fait que certaines cellules sont fusionnées.
-
Rebonjour avec un peu de retard
le prob vient que je veux absolument fusionner les cellules car j'ai fait mon modèle de facture avec des cels fusionnées et que je ne tiens pas à refaire toute cette facture car celle-ci contient pas mal de formules et macros, sinon je dois reprendre tout à zéro.
excuse moi d'abuser de toi et si tu peux me concocter ceci, je t'en remercie infiniment
cordialement -
-
-
-