Ajout de colonnes ET selection de cellules sur base d'une variable
Bonjour,
Je cherche à insérer au sein d'un tableau des colonnes dont le nombre serait défini par une formule ("la quantité d'entête qu'il existe"). Ensuite, je cherche à sélectionner uniquement ce nombre d'entêtes (la formule a été faite sur tout le tableau via un concat).
La première partie de ma macro qui consiste a créer les formules est correcte. A partir du moment où je pose ma cellule "somme" comme mon Integrer, ca commence à ne plus fonctionner correctement (partie soulignée). Est-ce parce qu'elle contient une formule et que je dois préciser que c'est de la valeur dont il faut tenir compte ou est-ce mon codage (qui en est à ses balbutiements) qui ne va pas?
Un tout grand merci d'avance pour vos éclaircissements
Bonne journée
Sub test()
'
' test Macro
'
'
Columns("D:E").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("D9:E9").Select
Selection.Copy
Range("AA9").Select
ActiveSheet.Paste
Range("AD9").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.CutCopyMode = False
Application.CutCopyMode = False
Application.CutCopyMode = False
Application.CutCopyMode = False
Range("C9:E106").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"AD9:AE106"), Unique:=True
Range("AF9").Select
ActiveCell.FormulaR1C1 = "concat"
Range("AF10").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]&"" pH ""&RC[-2]"
Range("AF10").Select
Selection.AutoFill Destination:=Range("AF10:AF106"), Type:=xlFillDefault
Range("AF10:AF106").Select
Columns("AF:AF").Select
Range("AF2").Activate
With Selection.Font
.Name = "Arial"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Font
.Name = "Arial"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("AE107").Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[-95]C:R[-1]C)"
Range("AF:AF").Select
Application.CutCopyMode = False
Selection.Copy
Range("AH:AH").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Dim I As Integer
For I = 1 To Range("AE107").Value
Columns("O:O").Select
Columns(col).Insert
c = c + I
Range(Cells(14, 1), Cells(1, 1 + I)).EntireColumn.Insert xlToRight
Range("AH8:AH8 + I-1").Select
Selection.Copy
Cells("O9").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Next I
End SubEdit modo : Mis codes entre balises. Merci d'utiliser les balises de codes en cliquant sur l'icône disponible dans le menu et en collant le code dans la fenêtre. Il sera plus facile à lire.
Bonjour Cindy, le forum,
Un petit fichier (sans données confidentielles) en montrant le résultat escompté, augmenterait tes chances de recevoir une proposition adaptée,
Il semblerait que ton code provienne en partie, de l'enregistreur de macro, beaucoup de select.
- Que vaut col ?
- A quoi sert c ?
- Syntaxe incorrecte...
Range(Cells(14, 1), Cells(1, 1 + I)).EntireColumn.Insert xlToRight '???
Range("AH8:AH8 + I-1").Select '???Cordialement,
Bonjour,
Merci pour ta réponse
Houlala, le fichier est compliqué, je vais donc tenter de l'epliquer et joindre un fichier avant et un fichier après pour montrer ce que je veux obtenir. Sachant que même les formules ne sontt pas encore terminées étant donné que je voulais d'abord résoudre ce problème avant d'aller plus loin.
J'ai donc une première feuille avec les données telles qu'elles sont représentées dans la réalité (une plaque de 96 puits dont chaque puits a une coordonnée lettre + chiffre, ex : A1 pour le 1er puits )(1er tableau coloré "récapitulatif"). On détaille ce que contient chaque cellule dans plusieurs sous-tableaux : un pour le buffer, un our le pH, un pour le sel, un pour le(s) éventuels excipients.
Dans la 2ème feuille, on met tout ça de façon lisible pour l'automate. 1ère partie du tableau va rechercher des données de la 1ere feuille. La 2èeme est vraiment ce que l'automate va lire. Je voulais dont, entre le NaCl et la colonne "Ag", insérer autant de colonne qu'on a de buffer à pH différent. Ma macro consistait donc à faire sur le côté un filtre valeur unique sur buffer + pH (effectivement c'est un record macro :-) )puis d'une part à sommer le nombre de valeurs extraite et d'autre part à faire un concat de ces deux colonnes pour moi avoir l'intitulé de mes futures colonnes à insérer. Ensuite je devais encore mettre les formules pour que les calculs ne se fassent que si et pH et buffer apparaissent dans le tableau récap de droite pour cette ligne-là (pour le moment c'était uniquement basé sur buffer et pas encore inséré dans la macro). L'idéal étant aussi de faire ça pour les excipient (cad autre que buffer, pH et NaCl, mais ça on peut en avoir zéro, et donc aucune colonne à ajouter, tandis que dans buffer on a d'office au moins une colonne a ajouter).
Voilà pour les explications. Pour mon code, col, j'ai tiré ca d'internet pour rajouter des colonnes en se basant sur une variante que l'on définit juste en-dessous. Ca avait fonctionné une seule fois (sauf que ça m'a ajouté des colonnes et des lignes n'importe comment partout oups, donc j'ai essayé de modifier ça mais maintenant ça ne rajouter plus rien ça met erreur).
Bonne journée
Re,
Houlala, comme tu dis, que c'est compliqué !
Voici un début de réponse pour l'insertion des colonnes PH....(sans aucunes données, que les titres)....
Cordialement,